主要问题是在我的sp中有不同的对象和逻辑可能导致性能不足 .
我在SP上看到的东西以及SP 1- Temp表中使用的表格如下所示; (2个临时表)
CREATE TABLE #TEMP_TABLE(AB INT NOT NULL,AC INT NOT NULL,AD INT NOT NULL,AF INT NULL,AG INT NULL,REFERENCE_NUMBER INT NULL)在#TEMP_TABLE(AB,AC,AD)上创建非压缩索引IX_1
2-将过程作为TEMP1插入到创建临时表中
3-DROP TABLE #TEMP_TABLE DROP TABLE#TEMP_TABLE2在SP的末尾
4-有两个表用于连接自己,但不是所有在JOIN操作符“on”情况下使用的字段 . 例如;在第一个表上声明了聚簇索引字段,加上第一个表的聚簇索引组中没有的日期列 .
简而言之;群集和非群集索引很重要,但我应该以哪种顺序声明它们 . 我需要从哪个索引类型,告诉我索引的创建顺序,以便进一步使用JOIN进程等 .
5-我应该使用表变量而不是临时表 . 好吧它会更好但是有很多问号不允许我使用表变量..
- INSERT到表变量不会利用并行性 . ref->
6-我听说过逻辑读物 . 我应该真正关心这些数字吗?示例数据结果的详细信息如下所示(*)
7-执行计划......
Execution Plan http://i47.tinypic.com/9hs9qh.png
- OUTPUT:
表'CHANNEL' . 扫描计数0,逻辑读取2,物理读取0,预读取读取0,lob逻辑读取0,lob物理读取0,lob预读读取0.表'XYZ_DATE' . 扫描计数1,逻辑读取2,物理读取0,预读取读取0,lob逻辑读取0,lob物理读取0,lob预读读取0.表'XYZ01' . 扫描计数3171,逻辑读取13135,物理读取153,预读取读取0,lob逻辑读取0,lob物理读取0,lob预读读取0.表'XYZ02' . 扫描计数5,逻辑读取51256,物理读取0,预读取读取0,lob逻辑读取0,lob物理读取0,lob预读读取0.表'#TEMP_TABLE __________________________________________________________________________________________________________00000000840' . 扫描计数0,逻辑读取97,物理读取0,预读取读取0,lob逻辑读取0,lob物理读取0,lob预读读取0.表'工作表' . 扫描计数0,逻辑读取0,物理读取0,预读取读取0,lob逻辑读取0,lob物理读取0,lob预读读取0.(32行受影响)表'#TEMP_TABLE2 ____________________________________________________________________________________________________________ 000000000841' . 扫描计数0,逻辑读取64,物理读取0,预读取读取0,lob逻辑读取0,lob物理读取0,lob预读读取0.表''XYZ03' . 扫描计数0,逻辑读取107,物理读取0,预读取读取0,lob逻辑读取0,lob物理读取0,lob预读读取0.表''XYZ04'' . 扫描计数32,逻辑读取129,物理读取0,预读读取0,lob逻辑读取0,lob物理读取0,lob预读读取0.表'#TEMP_TABLE __________________________________________________________________________________________________________000000840' . 扫描计数1,逻辑读取1,物理读取0,预读读取0,lob逻辑读取0,lob物理读取0,lob预读读取0.(21行受影响)(21行受影响)表'XYZ05' . 扫描计数0,逻辑读取87,物理读取0,预读取读取0,lob逻辑读取0,lob物理读取0,lob预读读取0.表'XYZ01A' . 扫描计数21,逻辑读取147,物理读取0,预读取读取0,lob逻辑读取0,lob物理读取0,lob预读读取0.表'XYZ04' . 扫描计数0,逻辑读取84,物理读取0,预读读取0,lob逻辑读取0,lob物理读取0,lob预读读取0.表'#TEMP_TABLE2 ________________________________________________________________________________________________________ 000000000841' . 扫描计数1,逻辑读取1,物理读取0,预读取读取0,lob逻辑读取0,lob物理读取0,lob预读读取0 .
(*)
1 回答
我确实放了一些索引然后扫描正在寻找..现在它更好 .
还在做性能测试:按照这里 - > Testing Stored Procedure performance