sqlserver数据库优化解析图文剖析

<p style="text-align: left">下面通过图文并茂的方式展示如下:


<p style="text-align: left">

一、sql Profiler


<p style="text-align: left">事件类 Stored Procedures\RPC:Completed Tsql\sql:BatchCompleted


<p style="text-align: left">事件关键字段 EventSequence、EventClass、SPID、DatabaseName、Error、StartTime、TextData、 HostName、ClientProcessID、ApplicationName、 cpu、Reads、Writes、Duration、RowCounts


<p style="text-align: left">

1、跟踪慢sql


<p style="text-align: left">

2、跟踪sql执行错误


<p style="text-align: left">

3、调试中找到sql 以特殊字符作为筛选条件

  


<p style="text-align: left">

4、T-SQL查询trace表


<p style="text-align: left">

a、设置抓取的时候段


<p style="text-align: left">

b、保持成文件 然后用下面语句查询文件


<p style="text-align: left"><div class="codetitle"><a style="CURSOR: pointer" data="78341" class="copybut" id="copybut78341" onclick="doCopy('code78341')"> 代码如下:
<div class="codebody" id="code78341">

SELECT EventSequence,SPID,RequestID,DatabaseId,DatabaseName,LoginName,StartTime,EndTime,TextData,Error,Duration/1000 AS Duration,Reads,cpu,Writes,RowCounts,HostName,ClientProcessID,ApplicationName INTO bak.dbo.traceFROM ::fn_trace_gettable('C:\trace\DB50 20150623.trc',default)

二、表存储结构

1、页 结构

2 区结构

3 文件存储

4 、基表

5、堆表

6、聚集索引

7、 普通索引

三、索引优化

1、选择性高唯一性高的字段放最前面

2、覆盖索引 Select、Where、Orderby字段都在索引中 或者 INCLUDE中 这样就会走到索引

3、控制索引数量,窄索引 此图索引作用不大

4、改善sql语句

a、sql尽量简单

b、参数化SARG的定义 列名 操作符 <常数 或 变量> Name='张三' and 价格>5000

c、非SRAG name like ‘%张' Name='张三' and 价格>5000 NOT、!=、<>、!<、!>、NOT EXISTS、NOT IN、NOT LIKE

四、执行计划

--显示统计信息

代码如下:
SET STATISTICS IO ON SET STATISTICS TIME ON SELECT * FROM dbo.FreezeUserMoney

以上是针对优化sqlserver数据库全部内容,希望大家能够喜欢。

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...