【发布时间】:2012-02-14 06:35:29
【问题描述】:
是否有可以分析 SQL Server 数据库的潜在问题的工具?
例如:
- a foreign key column that is not indexed
-
uniqueidentifier列上没有FILL FACTOR的索引 -
LastModifiedDate DATETIME列没有UPDATE触发器来更新日期时间 - 具有“高”碎片的大型索引
- 存在于多个区段中的非分段索引
- 一个不包含
SET NOCOUNT ON的触发器(让其怀疑“一个触发器返回了一个结果集和/或在另一个未完成的结果集处于活动状态时以 SET NOCOUNT OFF 运行。”) - 使用
SET ANSI_NULLS OFF创建的数据库、表、存储过程、触发器、视图 -
database or table with
SET ANSI_PADDING OFF - 使用
SET CONCAT_NULL_YIELDS_NULL OFF创建的数据库或表 - 一个高度分散的索引,可能受益于较低的
FILLFACTOR(即更多的填充) - 具有非常宽的聚集索引(例如唯一标识符+唯一标识符)的表
- 具有非唯一聚集索引的表
- 使用
text/ntext而不是varchar(max)/nvarchar(max) - 在可能包含本地化字符串且应为
nvarchar的列中使用varchar(例如 Name、FirstName、LastName、BusinessName、CountryName、City) - 使用
*=、=*、*=*而不是LEFT OUTER JOIN、RIGHT OUTER JOIN、FULL OUTER JOIN - trigger that returns a results set
- 声明为
timestamp而不是rowversion的任何列 - 一个可以为空的
timestamp列 - 使用
image而不是varbinary(max) - 数据库不处于简单模式(或日志文件大小超过数据文件的 100 倍)
是否有适用于 SQL Server 的 FxCop?
注意:Microsoft SQL Server 2008 R2 最佳实践分析器doesn't fit the bill。
【问题讨论】:
-
Database Administrators 的候选人?
-
我当然不希望数据库管理员修改我的触发器、存储过程、列数据类型、列可空性。
-
我的意思是,this question 可能是Q&A for database professionals 的候选...
-
我的意思是我认为它非常适合程序员,而不是服务器/数据库管理员。
标签: sql-server sql-server-2008-r2 fxcop