摘要:
游标1、尽量少用游标,如果不得不用,那就要看是否可以对逻辑进行整合,分出不同的情况,让在一部分情况是使用Insert select的方式来一次性插入(注意下例中的业务分析,这个是关键)2、如果存储过程花费的时间比较长,而且无法避免使用游标,那我们就要分析系统的业务,看大部分的情况是走哪条路的,那我们对大部分会发生的事做优化,也是可以达到我们优化的目的的;(比如IXC发起的时候在insert到tb Todo表中都要先判断tbTodo是否存在数据的,那把部分情况是不存在的,那我们就一次性判断count,如果没有就使用Insert select一次性插入到tb Todo)转自http://gaiza 阅读全文
posted @ 2012-01-20 21:09
指尖流淌
阅读(335)
评论(0)
推荐(0)
摘要:
1、查询的时候尽量按照复合索引的顺序来做条件查询,(比如IXC中spInterActiveInstance_GetByIDToStat条件and ProcessState<>99的位置)2、如果在程序中有For或者Foreach,在存储过程中又有If Exists,那么就要看是否可以再表中加入复合索引了,If Not Exists可以转换为If Exists来使用索引;3、在查询中尽量少使用*或者全表字段来查询数据。第一、返回的数据集比较大;第二,产生更多的IO操作,第三,会使得Bookmarklookup的查询计划,性能有所下降;如果能使用到覆盖索引来查询是最理想的。4、下面关于 阅读全文
posted @ 2012-01-20 21:00
指尖流淌
阅读(319)
评论(0)
推荐(0)
摘要:
索引1、复合索引(where a and b)如果没有对a和a做单一索引,查询的时间为a;如果对a做单一索引,查询时间为b;如果对b做单一索引,查询时间为c;如果对a,b做复合索引,查询时间为d,那么时间的比较就应该是a>b=c>d;(比如spMsgreader_Distribute中使用where inforID=@infoID and UserID=@userID,插入7000次的时候就明显的看到性能了;(8秒:1:50秒)注意升序和降序的区别?)2、当高选择性的非聚集索引达到5%的选择性时,该索引时非常有用的3、关于复合索引属性列位置问题,应该把高选择性的列放在坐左边(以前就 阅读全文
posted @ 2012-01-20 20:45
指尖流淌
阅读(408)
评论(2)
推荐(0)

浙公网安备 33010602011771号