主要问题是在我的sp中存在可能导致性能不足的不同对象和逻辑。
我在SP上看到的内容以及SP中使用的表格 1-温度表如下图所示; (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-将流程插入到创建临时表中,作为SP
中的TEMP13- 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 _________________________________________________________________________________________________________ 000000000840'。扫描计数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 _________________________________________________________________________________________________________ 000000000840'。扫描计数1,逻辑读取1, 物理读取0,预读读取0, lob逻辑读取0,lob物理 读取0,lob预读读取0。
(21行(s)受影响)
(21行(s)受影响)表 '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。
(*)
答案 0 :(得分:0)
我确实放了一些索引然后扫描正在寻找.. 现在好多了。
仍在进行性能测试: 按照这里 - > Testing Stored Procedure performance