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

   2015-08-18 0
核心提示:这篇文章主要介绍了sql数据库查询数据慢,针对如何优化sqlserver数据库做介绍,需要的朋友可以参考下

下面通过图文并茂的方式展示如下:

一、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 sqlserver数据库优化解析(图文剖析) 

     2、跟踪SQL执行错误 sqlserver数据库优化解析(图文剖析) sqlserver数据库优化解析(图文剖析)

      3、调试中找到SQL 以特殊字符作为筛选条件 sqlserver数据库优化解析(图文剖析)  

       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、页 结构

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

2 区结构

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

3 文件存储

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

4 、基表

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

5、堆表

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

6、聚集索引

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

7、 普通索引

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

三、索引优化

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

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

3、控制索引数量,窄索引 sqlserver数据库优化解析(图文剖析) 此图索引作用不大

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数据库优化解析(图文剖析)

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

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • sql mysql和sqlserver存在就更新,不存在就插入
    转自:http://hi.baidu.com/tidy0608/item/ff930fe2436f2601560f1dd9sqlsever数据存在就更新,不存在就插入的两种方法两种经常使用的方法:1. Update, if @@ROWCOUNT = 0 then insertUPDATETable1 SETColumn1 = @newValue WHEREId = @idIF@@ROWCOU
    02-10
  • db2,oracle,mysql ,sqlserver限制返回的行数
    不同数据库限制返回的行数的关键字如下:①db2select * from table fetch first 10 rows only; ②oracleselect * from table where rownum=10; ③mysqlselect * from table limit 10; ④sqlServerselect top 10 * from table;
    02-10
  • C#操作SqlServer MySql Oracle通用帮助类Db_Helper_DG(默认支持数据库读写分离、查询结果实体映射ORM)
    C#操作SqlServer MySql Oracle通用帮助类Db_Hel
    【前言】  作为一款成熟的面向对象高级编程语言,C#在ADO.Net的支持上已然是做的很成熟,我们可以方便地调用ADO.Net操作各类关系型数据库,在使用了多年的Sql_Helper_DG后,由于项目需要,于是乎,就准备写一个Mysql_Helper在实现过程中,发现ADO.Net封装之
    02-10
  • oracle与mysql与sqlserver的分页 sql和oracle在分页上的区别
    oracle与mysql与sqlserver的分页 sql和oracle在
     假设当前是第PageNo页,每页有PageSize条记录,现在分别用Mysql、Oracle和SQL Server分页查询student表。1、Mysql的分页查询: 1 SELECT2 *3 FROM4 student5 LIMIT (PageNo - 1) * PageSize,PageSize;理解:(Limit n,m)  =从第n行开始取m条记录,n从0开始
    02-10
  • SqlServer/Oracle 通过一个sql判断新增/修改
    if (Config.DbInfo.DbType.Equals(DBType.SQLServer)){sql = " IF EXISTS (SELECT 1 FROM wifi.imsi_model_status WHEREdevice_id = @device_id and wireless='" + row[0].GetString() + "') UPDATE wifi.imsi_model_status SET model_status = @mo
    02-09
  • 数据库(MSSQLServer,Oracle,DB2,MySql)常见语句
    创建数据库表1 create table person2 (3 FName varchar(20),4 FAge int,5 FRemark varchar(20),6 primary key(FName)7 )View Code
    02-09
  • sqlserver,oracle,mysql等的driver驱动,url怎么
    oracledriver="oracle.jdbc.driver.OracleDriver"url="jdbc:oracle:thin:@localhost:1521:数据库名"sqlserverdriver="com.microsoft.jdbc.sqlserver.SQLServerDriver"url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=数据库名"
    02-09
  • MySQL、SqlServer、Oracle三大主流数据库分页查
      在这里主要讲解一下MySQL、SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法。可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应用总结归纳一下,以方便大家查询使用。  下面就分别给大家介绍、讲解一下三种数
    02-09
  • 数据库(MSSQLServer,Oracle,DB2,MySql)常见语句
      上一篇文章http://www.cnblogs.com/valiant1882331/p/4056403.html写的太长了,所以就换了一篇,链接上一节继续字符串的拼接MySql中可以使用"+"来拼接两个字符串.select '12'+'33',FAge+'1' from t_employeeView Code
    02-09
  • 问题:sqlserver有没有类似Oracle的LISTAGG;结果: 灵活运用 SQL SERVER FOR XML PATH
    


		
灵活运用 SQL SERVER FOR XML P
    问题:sqlserver有没有类似Oracle的LISTAGG;结
            FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作。那么以一个实例为主.        一.FOR XML PATH 简单介绍
    02-09
点击排行