实践SQLServer Tuning
已有的系统业务数据属性多,表之间关系紧密。单表数据量(5481 row(s) affected)级别(其中三四个主表),其他表数据量较小。
0)使用set statistics生成辅助信息参考。

set statistics io on
set statistics time on
set statistics profile on set statistics io off
set statistics time off
set statistics profile off

1)使用Include Actual Execution plan & Include Client Statistics做参考。

2) 短路表达式的面向业务优化:
or表达式常用的搜索条件置前。
@cls_date_start is null and @cls_date_end is null)
or (@cls_date_start is not null and @cls_date_end is null and expct_cls_dt >= @cls_date_start)
or (@cls_date_start is null and @cls_date_end is not null and expct_cls_dt <= @cls_date_end)
or (@cls_date_start is not null and @cls_date_end is not null and expct_cls_dt between @cls_date_start and @cls_date_end)
3) 针对执行计划的分析。
http://www.blogjava.net/jiabao/archive/2008/04/08/191595.html 这篇文章Mark一下,浅显又深入。
4) 对临时表添加cluster index与unique index。以让其为连接所用并避免较大表的table scan。貌似效果不错。
实践SQLServer Tuning的更多相关文章
- SQLServer · 最佳实践 · 透明数据加密TDE在SQLServer的应用
转:https://yq.aliyun.com/articles/42270 title: SQLServer · 最佳实践 · 透明数据加密TDE在SQLServer的应用 author: 石沫 背 ...
- 利用Kettle进行SQLServer与Oracle之间的数据迁移实践
Kettle简介 Kettle(网地址为http://kettle.pentaho.org/)是一款国外开源的ETL工具,纯java编写,可以在Windows.Linux.Unix上运行,数据抽取高效 ...
- Docker for Windows(五)实践搭建SqlServer服务&执行数据库操作
上一篇我们已经搭建了一个mysql数据库服务了:Docker for Windows(四)实践搭建&删除MySQL服务,发现用Docker确实是方便且容易,但上一篇主要是服务的搭建删除等基础操 ...
- SSIS实践入门2:批量包的调度和SQLServer代理作业配置
趁着上一篇文章的余温,我们继续研究一下SSIS中多个包如何调度,难道需要一个包一个包的配置调度程序吗?显然不是的,接下来我们就说一说在SSIS应用中如何批量的调度所有的作业,本文只讲述一个基本的逻辑过 ...
- EF Core CodeFirst实践 ( 使用MS SqlServer)
这里使用 MS SQLSERVER ,网上大多使用 SQLite 先来一个CodeFirst 新建项目 这里我们选择 ASP.NET Core Web Application (.NET Core) ...
- SqlServer双机热备技术实践笔记
SqlServer双机热备,大体上可以通过发布订阅,日志传送,数据库镜像来实现. 1,发布--订阅 是最早最简单的方案,但需要注意发布的时候,发布进程必须对快照目录有访问权限,这个问题可以从“查看快照 ...
- sqlserver分区表实践:对时间分区表自动进行管理
项目问题:有一张日志表,插入和查询为主,每天记录数据为200多万,大小为2G-4G之间.一开始开发人员使用delete语句手动删除,保留7天数据,经常造成阻塞和性能瓶颈.但是如果不删除数据随着表越来越 ...
- 大数据批量导入,解决办法,实践从定时从 sqlserver 批量同步数据到 mySql
c#代码,批量导入数据代码 public class MySql_Target : ZFCommon.DataAccesser.Base.DABase { public MySql_Target() ...
- sqlserver配置实践
对于一套新的sqlserver服务器,我们首先要对它做一些必要的优化配置,确保在生产上比较长的时间段内可以比较稳定的,良好的运行. 新的sqlserver服务器上安装的sqlserver版本,可以选择 ...
随机推荐
- IOS 网络浅析-(四 get&post)
网络请求默认是get 网络请求有很多种:GET查 POST改 PUT增 DELETE删 HEAD 在平时开发中主要用的 是 get 和 post. get 获得数据 (获取用户信息) get 请 ...
- HTTP通信过程底层实现原理
- js事件执行顺序
http://ejohn.org/blog/how-javascript-timers-work/
- WPF-拖动面板移动窗口&设置窗口状态
在需要去掉窗口边框的情景下往往需要有拖动面板直接移动窗口和自定义按钮改变窗口状态和关闭的功能 拖动面板移动窗口 为面板控件添加MouseMove事件, 面板控件指的是用来当面板的控件,可以是grid. ...
- java微信接口之二—获取用户组
一.微信获取用户组接口简介 1.请求 该请求也是GET方式请求.请求的url格式如下: https://api.weixin.qq.com/cgi-bin/groups/get?access_toke ...
- hping3
[root@zxserver104 ~]# hping3 -c -d -S -w -p --flood --rand-source 115.236.6x.19x 1. hping3 = 应用程序二进制 ...
- linux 下安装nodejs,CentOS 6.5 系统
本文采用nodejs 通过源码编译安装方式 编译需要gcc-c++编译器和openssl-devel库的支持,如果没有需要先安装. 在centos下可以先执行:yum install gcc-c++ ...
- jenkins忘记管理密码处理方式
进入/var/lib/jenkins/ 用vim编辑 config.xml文件 找到useSecurity部分 将true改成false 并且删除下面的 授权部分 保存推出 3.从新进入 ...
- 【Android UI设计与开发】1.引导界面(一)ViewPager介绍和简单实现
1.ViewPager 实现效果图 2.ViewPager 实现功能 ViewPager类提供了多界面切换的新效果,新效果有如下特征: <1>当前显示一组界面中的其中一个界面: <2 ...
- HDU 2669 Romantic【扩展欧几里德】
裸的扩展欧几里德,求最小的X,X=((X0%b)+b)%b,每个X都对应一个Y,代入原式求解可得 #include<stdio.h> #include<string.h> ty ...