sqlserver sql调优 索引 (查询时间超过1分钟)根据时间匹配时超过1分钟
2017-11-14 13:39
288 查看
在项目 中往往遇到 数据过几十万百万不到的 数据 查询时延时很大,这种情况往往是很严重的问题,客户不可能点进去一个网页等你几分钟是吧?
比如这条sql 在执行中往往遇到瓶颈,使用前面datapart 方法 使用两次 并没有第二个 between 要好 ,加索引后 我们发现
不难发现 时间少了 3倍,但是这世间也是挺长的了24秒 能在快点嘛???
好,我们增加一个state 条件的 索引 再查
我们发现时间又少了12倍, 2秒,算快了。可我认为并不快,猜一猜?
好了,也不卖关子了
其实想between 和 datepart 其实是有区别的,上面图片中 datepart执行了四次 相当于每次条件都执行了2次,而between 只需要执行一次,时间效率更高效。
像这样一秒钟,可以把?
对于sql优化 太慢必须要建立索引和代码优化。
希望能帮助到大家,另外建立索引 时间日期之类的必须要建立聚集,而像状态这些要设立非聚集,否则建立无效。。。
分析其执行计划,发现where条件中的日期过滤太慢,所以检查creame_event表eventtime是否有索引,发现真的没有索引,加上索引时间缩短到24s。索引分为聚集索引和非聚集索引,而一个表上只能有一个聚集所以,所以这个日期我建成了非聚集索引,对于日期来说应该建成聚集索引。
注意哦。
比如这条sql 在执行中往往遇到瓶颈,使用前面datapart 方法 使用两次 并没有第二个 between 要好 ,加索引后 我们发现
不难发现 时间少了 3倍,但是这世间也是挺长的了24秒 能在快点嘛???
好,我们增加一个state 条件的 索引 再查
我们发现时间又少了12倍, 2秒,算快了。可我认为并不快,猜一猜?
好了,也不卖关子了
其实想between 和 datepart 其实是有区别的,上面图片中 datepart执行了四次 相当于每次条件都执行了2次,而between 只需要执行一次,时间效率更高效。
像这样一秒钟,可以把?
对于sql优化 太慢必须要建立索引和代码优化。
希望能帮助到大家,另外建立索引 时间日期之类的必须要建立聚集,而像状态这些要设立非聚集,否则建立无效。。。
分析其执行计划,发现where条件中的日期过滤太慢,所以检查creame_event表eventtime是否有索引,发现真的没有索引,加上索引时间缩短到24s。索引分为聚集索引和非聚集索引,而一个表上只能有一个聚集所以,所以这个日期我建成了非聚集索引,对于日期来说应该建成聚集索引。
注意哦。
相关文章推荐
- find 技巧 根据时间查询
- 多关键字查询并根据匹配程度排序
- MongoDB 创建地图索引及根据位置坐标查询地点小例子
- 根据数据库中时间查询的操作
- SQL 根据时间戳分组查询
- 根据DB引擎选择合适的索引进行查询优化
- SQL语句根据具体时间查询数据
- 根据时间查询,时间需要统一格式
- 利用pg_trgm的gist和gin索引加速字符匹配查询
- Lucene之建立索引以及根据索引查询
- java 根据当天时间 获取前7天之间的时间 和后多少天的查询时间
- Mysql根据时间范围查询
- mongodb中根据时间范围进行查询
- jsp 时间控件 根据时间查询
- bmob根据时间排序分页查询多条数据
- Mysql根据时间查询日期的优化技巧
- oracle 根据更新时间不同查询多条相同数据
- 建立时间索引后,按照时间排序来获得列表的查询,速度增快了不少
- sqlserver中根据时间类型查询这类型的数据
- 根据对服务器进行的脆弱性报告(移动IDC的)要求禁用ICMP协议的时间戳请求查询来提高安全系数