我有一个有2TB数据的数据库,我想通过删除一些行和删除一些无用的列来将它减少到500 to,但是我有其他优化的想法,我需要一个以前的一些问题的答案。
我的数据库有一个.mdf文件和9个其他.ndf文件,每个文件的初始大小为100 got。
PS :我的数据库只包含一个表,它有一个聚集索引和两个其他非聚集索引,
如果您有任何其他优化的想法,这将是非常有用的。
发布于 2016-12-16 13:37:37
在删除任何索引之前,请运行这两个视图。
sys.dm_db_index_usage_stats
sys.dm_db_index_operational_stats
它们将让您知道其中是否有一个用于支持查询。最后一件事是删除一个索引,然后开始看到2TB表上的全表扫描。
如果不能将表划分为关系模型,那么首先尝试这些方法。
-Can您用VARCHAR代替NVARCHAR还是用CHAR替换NCHAR?(他们占据了一半的空间)
-Does您的表经历了很多更新或插入(上面的视图会告诉您这一点)?如果更新很少,那么考虑将CHAR字段更改为VARCHAR字段。大量的更新会导致页面分裂,导致页面富足。
只存储没有时间的日期的列未声明为Datetime的-Check
-Check值范围在数字字段中,即尝试使用Smallint而不是Int。
https://stackoverflow.com/questions/41182960
复制相似问题