在项目 中往往遇到 数据过几十万百万不到的 数据 查询时延时很大,这种情况往往是很严重的问题,客户不可能点进去一个网页等你几分钟是吧?

sqlserver sql调优 索引 (查询时间超过1分钟)根据时间匹配时超过1分钟

比如这条sql 在执行中往往遇到瓶颈,使用前面datapart 方法 使用两次 并没有第二个 between 要好 ,加索引后 我们发现

sqlserver sql调优 索引 (查询时间超过1分钟)根据时间匹配时超过1分钟

不难发现 时间少了 3倍,但是这世间也是挺长的了24秒 能在快点嘛???


好,我们增加一个state 条件的 索引 再查

sqlserver sql调优 索引 (查询时间超过1分钟)根据时间匹配时超过1分钟

我们发现时间又少了12倍, 2秒,算快了。可我认为并不快,猜一猜?

好了,也不卖关子了

其实想between 和 datepart 其实是有区别的,上面图片中 datepart执行了四次 相当于每次条件都执行了2次,而between 只需要执行一次,时间效率更高效。

sqlserver sql调优 索引 (查询时间超过1分钟)根据时间匹配时超过1分钟

像这样一秒钟,可以把?

对于sql优化 太慢必须要建立索引和代码优化。

希望能帮助到大家,另外建立索引 时间日期之类的必须要建立聚集,而像状态这些要设立非聚集,否则建立无效。。。



分析其执行计划,发现where条件中的日期过滤太慢,所以检查creame_event表eventtime是否有索引,发现真的没有索引,加上索引时间缩短到24s。索引分为聚集索引和非聚集索引,而一个表上只能有一个聚集所以,所以这个日期我建成了非聚集索引,对于日期来说应该建成聚集索引。

注意哦。


相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-26
  • 2022-12-23
  • 2021-08-29
猜你喜欢
  • 2021-06-20
  • 2021-04-01
  • 2021-12-09
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-03
相关资源
相似解决方案