首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

目录优化

2013-09-06 
索引优化在SQL SERVER 2008 有一张10几万数据的表FactChangeRequest,因为经常需要使用关于列SubmitDate(非

索引优化
在SQL SERVER 2008 有一张10几万数据的表FactChangeRequest,因为经常需要使用关于列SubmitDate(非PK,FK) 的条件,所以专门对它建立了索引 ( Non-unique , Non clustered)
具体信息如图,但是貌似就性能而言还是没什么改变
打个比方
select *
from FactChangeRequest
where SubmitDate > '2009-03-12 00:00:00.000'
大概有2,万条,但是要好几分钟才会有结果
所以,请问有什么办法,可以优化下该索引
索引
[解决办法]


SubmitDate 数据类型 在系统中是字符型 ,还是datetime型.
这两个是有些区别的.

引用:
select *
from FactChangeRequest
where SubmitDate > '2009-03-12 00:00:00.000'
大概有2,万条,但是要好几分钟才会有结果
所以,请问有什么办法,可以优化下该索引

[解决办法]
数据经过新增、修改、删除以后,存储位置已经不连接在一起了,也就是数据存放各个碎片上,分布不均,造成查询慢,这时候需要重建索引

DBCC DBREINDEX (TableName1,Index_Name1)     
DBCC INDEXDEFRAG (TableName1,Index_Name1)

[解决办法]
--10几万数据的表,你搜2W条,且是select *出所有字段,很可能走全表扫描。
--没什么办法。暂时看来:
#1.创建覆盖索引,include所有要select出来的字段;
#2.修改业务逻辑,比较分页查询。
[解决办法]
这是极低选择性,一定走表扫描
[解决办法]
"建立了索引 ( Non-unique , Non clustered)"你这是建立的非聚族索引,你建立聚族索引试试

热点排行