下面通过图文并茂的方式展示如下:
一、SQL Profiler
事件类 Stored Procedures\RPC:Completed TSQL\SQL:BatchCompleted
事件关键字段 EventSequence、EventClass、SPID、DatabaseName、Error、StartTime、TextData、 HostName、ClientProcessID、ApplicationName、 CPU、Reads、Writes、Duration、RowCounts
1、跟踪慢SQL
2、跟踪SQL执行错误
![](/d/20211017/f33b1ec796fe2ac59a96dbd12a7cad35.gif)
3、调试中找到SQL 以特殊字符作为筛选条件
4、T-SQL查询trace表
a、设置抓取的时候段
b、保持成文件 然后用下面语句查询文件
复制代码 代码如下:
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、页 结构
![](/d/20211017/8bd30f2a5cc2f43cb8754a8ebb412979.gif)
2 区结构
![](/d/20211017/283f05b0b898ef7a8aef3b530385dc90.gif)
3 文件存储
![](/d/20211017/293f517283111049f50b19da4a764c61.gif)
4 、基表
![](/d/20211017/21e0c6c569fbd6f91b35a10e0c5ed074.gif)
5、堆表
![](/d/20211017/1fb5928bafd8f880ffded5e89a2c9251.gif)
6、聚集索引
![](/d/20211017/b6618d83505848b2726230ae1a758311.gif)
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
开启执行重点看下面几个地方 ![](/d/20211017/c4fe85a2a282a1d87735c93084a7b737.gif)
以上是针对优化sqlserver数据库全部内容,希望大家能够喜欢。
您可能感兴趣的文章:- 开启SQLSERVER数据库缓存依赖优化网站性能
- SQLServer 优化SQL语句 in 和not in的替代方案
- SqlServer 执行计划及Sql查询优化初探
- sqlserver关于分页存储过程的优化【让数据库按我们的意思执行查询计划】
- SqlServer 索引自动优化工具
- SQLSERVER SQL性能优化技巧
- 日常收集整理SqlServer数据库优化经验和注意事项
- 深入学习SQL Server聚合函数算法优化技巧