首页 文章

由于SP性能不足导致SQL存储过程问题

提问于
浏览
0

主要问题是在我的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 回答

相关问题