--调优SQL

--sqlreview ->logshipping -> ag辅助副本

--查看正确的执行计划 打开实际的执行计划
set statistics io on

--查看错误的执行计划 打开实际的执行计划
set statistics io on

--对比 正确和错误 执行计划的差别
紧盯最大返回记录数处,找最粗的,不要看cost百分比 没用!
找出问题点,是否走错了索引,或未走做引

--对于缺失索引的 创建索引
use SiccDB
sp_spaceused CDRSub_Current_Merge --116GB

create index idx_CDRSub_Merge_Truncated on CDRSub_Current_Merge(TIME_IN) with(online=on)

--对于走错的索引的 释放错误的执行计划
select sql_handle,* from sys.dm_exec_requests where session_id=77

DBCC FREEPROCCACHE (0x060006001ECA270EC0215D05000000000000000000000000);
GO

--更新索引统计信息
update statistics CDRSub_Current_Merge
update statistics CDRSub_Current_Merge idx_CDRSub_Merge_Truncated

--再次运行sql,查看是否正常

--更新统计信息无效,查看索引碎片率的情况
更新过统计信息后 实际返回行和评估返回行 还是有差距的话,需要查看索引是否碎片严重

SELECT avg_fragmentation_in_percent,* FROM sys.dm_db_index_physical_stats
(DB_ID(N'SiccDB'), OBJECT_ID(N'dbo.CDRSub_Current_Merge'), NULL, NULL , 'LIMITED');

use SiccDB
go
ALTER INDEX [idx_CDRSub_Merge_Truncated] on [dbo].[CDRSub_Current_Merge] rebuild WITH( ONLINE = ON ) --重建索引
ALTER INDEX [idx_anino] on [dbo].[CDRSub_Current_Merge] rebuild WITH( ONLINE = ON )
ALTER INDEX [idx_dnisno] on [dbo].[CDRSub_Current_Merge] rebuild WITH( ONLINE = ON )

--删除走错的索引,不推荐
exec configdb..spm_index_usages 'SiccDB','CDRSub_Current_Merge' --查看走错的索引最后一次使用时间,判断是否为无效索引! 对于无效索引 可以删除!

use SiccDB
go
DROP INDEX [idx_anino] ON [dbo].[CDRSub_Current_Merge]

--最后使用临时表
修改写法,采用临时表,按正常的执行计划顺序,一步步落数

注意:临时表会造成tempdb的page latch争用,并发量大的语句不推荐使用临时表

调优SQL思路的更多相关文章

  1. 我如何调优SQL Server查询

    我是个懒人,我只想干尽可能少的活.当我干活的时候我不想太多.是,你没看错,这看起来很糟糕,作为一个DBA这很不合格.但在今天的文章里,我想给你展示下,当你想对特定查询创建索引设计时,你如何把你的工作和 ...

  2. SQL注入漏洞和SQL调优SQL注入漏洞和SQL调优

    SQL注入漏洞和SQL调优 最近读了程序员的SQL金典这本书,觉得里面的SQL注入漏洞和SQL调优总结得不错,下面简单讨论下SQL注入漏洞和SQL调优. 1. SQL注入漏洞 由于“'1'='1'”这 ...

  3. 数据库性能调优——sql语句优化(转载及整理) —— 篇2

    下面是在网上搜集的一些个人认为比较正确的调优方案,如有错误望指出,定虚心改正 (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中 ...

  4. 利用sql_tuning_Advisor调优sql

    1.赋权给调优用户 grant ADVISOR to xxxxxx; 2.创建调优任务 使用sql_text创建 DECLARE my_task_name VARCHAR2 (30); my_sqlt ...

  5. MySQL 性能调优——SQL 查询优化

    如何设计最优的数据库表结构,如何建立最好的索引,以及如何扩展数据库的查询,这些对于高性能来说都是必不可少的.但是只有这些还不够,要获得良好的数据库性能,我们还要设计合理的数据库查询,如果查询设计的很糟 ...

  6. 标量子查询调优SQL

    fxnjbmhkk4pp4 select /*+ leading (wb,sb,qw) */ 'blocker('||wb.holding_session||':'||sb.username||')- ...

  7. 数据库性能调优——sql语句优化(转载及整理) —— 篇1

    一.问题的提出                    在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实 ...

  8. 十分钟释疑Oracle中“小表超慢”之谜(SQL调优/SQL优化)

    前几天,一个用户找到我,说查一个小表的时候非常慢,我问有多慢,他说最快也得半个小时才能出结果,有时干脆不出结果,我说小表多大,他说就几十兆,有点疑惑,让他帮忙获取了相关信息,一看就明白了,原来所谓的小 ...

  9. Destoon B2B 调优SQL后 生成首页仍然慢或不成功的原因

    修改php.ini文件,查找 ;date.timezone = ,把前面的分号去掉在 “=”后面加上时区. 比如:Asia/Shanghai (上海) 自动task有上面的问题 但后台生成时这样修改后 ...

随机推荐

  1. jQuery实现全选效果【转】

    这是一段用jquery实现全选的代码,主要思路如下: 1.所有的复选框都有单击事件,所有效果都是在单击事件下实现的 2.全选复选框所实现的功能与其他复选选项实现的功能不同,所有在单击事件内做一个判断, ...

  2. ffmpeg(2.6) rockplayer android 下编译 小记.

    最近因为一些需求,开始学习 ffmgeg 在android 上使用. 使用的环境: 1,VMware V8 虚似机 安装的 FedoraV18 系统.(下载地址,请baidu),虚似机,最好有20-3 ...

  3. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined)D Dense Subsequence

    传送门:D Dense Subsequence 题意:输入一个m,然后输入一个字符串,从字符串中取出一些字符组成一个串,要求满足:在任意长度为m的区间内都至少有一个字符被取到,找出所有可能性中字典序最 ...

  4. *HDU1829 并查集

    A Bug's Life Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  5. Learn ZYNC (2)

    AXI HP接口的DMA+GIC编程(参照博客) 参照文档:UG873,博客文档 参考设计代码文件:ug873源码 我的Vivado+SDK工程文件打包(60+M) 我的DMA驱动程序(已完成) Vi ...

  6. iOS开发之CocoaLumberjack

    Cocoa LumberJack是一个功能强大的NSlog,是通用的Cocoa日志框架之一.它可以提供更高级的log功能,比如记录log至文件或网络,并可根据log的级别(info.debug.war ...

  7. 20145205 《Java程序设计》实验报告三:敏捷开发与XP实践

    开发与XP实践 实验要求 1.XP基础 2.XP核心实践 3.相关工具 实验内容 敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运营和维护上的过程.软件工程包括下列领域:软 ...

  8. C fopen

    格式:文件指针名=fopen(文件名,使用文件方式) 参数:文件名 意义"C://TC//qwe.txt" 文件C:/TC/qwe.txt"qwe.txt" 和 ...

  9. cuplayer酷播播放器 swf 带参数直接播放

    客户需要使用cuplayer,直接调用swf 播放器. /Player/player.swf?FlvID=745,此处写入视频ID; 官方给的例子,运行是有问题的. http://www.cuplay ...

  10. PHP 水印设置

    一.图片水印 <?php /* 覆盖水印 */ $image = ImageCreateFromJPEG('memcached.jpg'); $stamp = ImageCreateFromPN ...