【问题标题】:Tools to optimize SQL Server data types?优化 SQL Server 数据类型的工具?
【发布时间】:2026-02-23 05:05:01
【问题描述】:

我尝试了谷歌搜索,但似乎找不到任何可以帮助我的东西:是否有任何工具或脚本可以“分析”数据库中的所有表,并提供优化基于数据类型的建议他们目前持有的价值观?

例如:

  • int 列不包含高于 255 的值会更好作为 tinyint。
  • 只有“1”和“0”的int 或char 列应该是位的。
  • 存储为 varchar 的 guid 应该是唯一标识符。
  • 存储为 varchar 的数值。
  • 或者您甚至可以非常聪明地检测存储为 varchar 的 IP 地址并建议将其更改为 bigint。

【问题讨论】:

  • 是的——那个工具叫做“DBA”:-)
  • 呵呵,真的:但我认为大多数 DBA(或至少一些 DBA)都希望轻松快速了解一下,这样他们就有了一些弹药来抱怨开发人员弄乱了他们的数据库...... :) 我如果某个地方的聪明 DBA 已经有脚本来执行此操作,我不会感到惊讶。

标签: sql-server optimization


【解决方案1】:

我不知道任何副手,但我觉得它应该是设计/建模任务,或者应该是应该由人类完成的事情......任何工具都不知道为什么有人选择 int vs tinyint - 因为也许应用程序业务逻辑允许值大于 255,但到目前为止的值都小于 255。

【讨论】:

  • 我完全同意,所有建议当然应该由了解业务逻辑的开发人员进行评估。但是如果有一个工具可以自动遍历数百个表格并指向感兴趣的区域,那就太好了。也许最初的开发者不太关心存储问题,但最终它变成了一个问题,并分配了一个新人来清理它:从哪里开始? :)
  • 是的,我听到了。我也google了一下,没找到。我想说的是一张一张地攻击桌子:(