SqlServer 执行计划及Sql查询优化初探

sql文章实在是很多,说实在的,我也曾经到处找这样的文章,什么不要使用sql数据库打交道的程序员的必修课,所以写了此文,与朋友们共勉。

文章,这个网上资料比较多了。

sqlsqlsql查询。

T_UserInfo

Userid varchar20UserName varchar20

RegTimeTel varchar20

1

@ENDID

T_UserInfo

@IVARCHAR20VARCHAR20

@IVARCHAR20

@I@I1

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">sql

INDEX_UseridT_UserInfoUserid

INDEX_UseridT_UserInfoUserid

删除索引

T_UserInfoINDEX_Userid

显示有关由sql生成的磁盘活动量的信息

IO

关闭有关由sql生成的磁盘活动量的信息

IO

显示

关闭

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">IO

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">

一个查询语句:

T_UserInfoUSERID

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">L

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">stroked="f">stroke joinstyle="miter">linewidth 0">

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">

sql

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">

IO

sqlT_UserInfoUSERID

显示如下:

次数

查询而放入缓存的页数

一个

sql

查询有多种写法,那么这四个值中的逻辑读

)

一个聚集索引

INDEX_UseridT_UserInfoUserid

T_UserInfoUSERID

显示:

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; PADDING-TOP: 0px">

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">一个索引页,现在我们查询时,逻辑读就是要读两页

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">

查询语句,然后再L

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">

,

sql

查询计划和如何查看对

IO

T_UserInfoUSERID

INDEX_UseridT_UserInfoUserid

一个索引页,一个数据页

查询优势就显示出来了。

sqlL

IO功能的不同sql

查询速度越快

sqlsqlsql

INDEXT_UserInfo.INDEX_Userid

显示语句执行情况的详细信息

*FROMT_UserInfoWHEREUSERIDLIKE

cpu

在这里我们只看

*FROMT_UserInfoWHEREUSERIDLIKE

+L

加上索引:

关闭:

CLUSTEREDINDEXINDEX_UseridT_UserInfo(Userid

*FROMT_UserInfoWHEREUSERIDLIKE

*FROMT_UserInfoWHEREUSERIDLIKE

= 'ABCDE8' AND [T_UserInfo].[Userid] < 'ABCDE9'),WHERE:(like([T_UserInfo].[Userid],NULL)) ORDERED FORWARD)Ctrl+L

+L

一个sql

*FROMT_UserInfoWHERELEFT(USERID,4

*FROMT_UserInfoWHERELEFT(USERID,4

[图形界面也有对cpu和IO的消耗,也可以看出来哪个最优!]

一个最简单的优化的例子就出来了,哈哈。

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">sqlsql文章真的是那样吗?你自己试试就知道了,而不必盲目去记那些东西,自己试试,看看sql

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">sqlsql查询sql函数用不用索引?查询呢?在这里我不一一去试给大家看了,只要知道了如何去看sql

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">查询功能sqlsql查询计划、通过其优化后而执行的sqlsql

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">sql查询写法语句的执行计划,这一点在非聚集索引上特别明显,还有就是在多cpucpu用户并发情况下,同一写法的查询语句执行计划会有所不同,这个就需要大家有机会去试验了分享

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">

normal style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BottOM: 0px; MARGIN: 0cm 0cm 0pt; PADDING-TOP: 0px">sql

相关文章

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跟踪的数据库标...