奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

SQL

SQL語(yǔ)句的優(yōu)化問(wèn)題教程

時(shí)間:2024-08-30 03:38:22 SQL 我要投稿
  • 相關(guān)推薦

SQL語(yǔ)句的優(yōu)化問(wèn)題教程

  在實(shí)際的工作中,尤其是在生產(chǎn)環(huán)境里邊,SQL語(yǔ)句的優(yōu)化問(wèn)題十分的重要,它對(duì)數(shù)據(jù)庫(kù)的性能的提升也起著顯著的作用.我們總是在抱怨機(jī)器的性能問(wèn)題,總是在抱怨并發(fā)訪問(wèn)所帶來(lái)的瑣問(wèn)題,但是如果我們對(duì)沒(méi)一條SQL語(yǔ)句進(jìn)行優(yōu)化,盡管不能說(shuō)可以解決全部問(wèn)題,但是至少可以解決大部分問(wèn)題.

  1.Top排序問(wèn)題.

  我們經(jīng)常要對(duì)表某個(gè)字段進(jìn)行排序,然后取前N名.所以我們會(huì)寫(xiě)如下的SQL語(yǔ)句:

  selecttop100*from表

  orderbyScoredesc

  如果表非常大的話,那么這樣的操作是非常消耗資源的,因?yàn)镾QLSERVER要對(duì)整個(gè)表進(jìn)行排序,然后取前N條記錄.這樣的造作是在Temdb里邊進(jìn)行的,所以極端的時(shí)候會(huì)報(bào)Log已滿這樣的錯(cuò)誤.為了避免進(jìn)行全表的排序,我們要做的僅僅是在Score上建立索引,這樣因?yàn)镾core索引的葉級(jí)是有序的,只要在Score所以的頁(yè)級(jí)取前100個(gè),然后根據(jù)書(shū)簽查找到實(shí)際的記錄,這樣對(duì)DB的性能就會(huì)有極大的提升.

  2.同一天問(wèn)題.

  我們經(jīng)常要查找和一個(gè)日期同一天的記錄,所以我們回寫(xiě)如下的SQL語(yǔ)句;

  declare@DateTimedatetime

  set@DateTime=getdate()

  select*from表

  whereconvert(10),F_Time,120)=convert(10),@DateTime,120)

  但是這樣寫(xiě)的SQL語(yǔ)句帶來(lái)的問(wèn)題就是不能使用F_Time上的索引了.為了近可能的使用F_Time上的索引,我們可以使用時(shí)間段查詢的方式來(lái)代替上邊的語(yǔ)句.

  declare@startdatetime

  declare@enddatetime

  declare@datetimedatetime

  set@datetime=getdate()

  tart=convert(10),@datetime,120)--一天的其始時(shí)間

  set@end=dateadd(ss,-1,dateadd(d,1,@start))--一天的結(jié)束時(shí)間

  select*from表whereF_Timebetween@startand@end

  這樣就解決了使用不上索引的問(wèn)題.

  3.利用索引進(jìn)行分組操作.】我們經(jīng)常要對(duì)某一字段進(jìn)行分組,而對(duì)另外一些字段進(jìn)行聚合操作.如果我們對(duì)分組的字段合理的使用索引,可以加快我們分組的速度.下邊以Northwind的Orders表為例:

  --orders表的EmployeeID上建有索引.

  selectEmployeeID,count(*)

  fromorders

  groupbyEmployeeID

  --查看執(zhí)行計(jì)劃,此查詢利用了EmployeeID上的索引.如改成如下查詢:

  selectEmployeeID,sum(Freight)

  fromorders

  groupbyEmployeeID

  --查看執(zhí)行計(jì)劃,此查詢則沒(méi)有使用EmployeeID上的索引.而是使用了全表掃描.那么原因是什么呢?是因?yàn)镕reight沒(méi)有在EmployeeID的索引上,所以通過(guò)索引不能得到結(jié)果.而如果通過(guò)書(shū)簽查詢的成本太高,所以SQLSERVER選擇了使用全表掃描.而如果我們執(zhí)行在EmployeeID和Freight上建立復(fù)合索引呢?

  createindexidx_EmployeeIDonorders(EmployeeID,Freight)

  --再次執(zhí)行第二個(gè)查詢.查看執(zhí)行計(jì)劃.SQLSERVER使用的我們建立的索引.只需要使用索引就可以查詢到結(jié)果,極大的提高了我們的查詢速度.

【SQL語(yǔ)句的優(yōu)化問(wèn)題教程】相關(guān)文章:

關(guān)于硬盤(pán)的維護(hù)與優(yōu)化問(wèn)題07-16

sql語(yǔ)法大全03-23

Sql認(rèn)證考試內(nèi)容06-08

ps教程01-03

css教程07-22

ps教程08-10

ps教程07-30

css經(jīng)典教程07-18

給寵物美容的教程09-06

(優(yōu))css教程07-21

主站蜘蛛池模板: 黔西| 台州市| 东阿县| 上饶县| 布尔津县| 武陟县| 宁武县| 永修县| 纳雍县| 柳河县| 汉川市| 兴义市| 儋州市| 石泉县| 富蕴县| 徐水县| 珲春市| 明溪县| 资溪县| 宜丰县| 贵阳市| 新兴县| 尼勒克县| 汶川县| 资中县| 大新县| 高陵县| 若尔盖县| 卫辉市| 莱阳市| 延吉市| 迁西县| 察雅县| 安乡县| 湖州市| 鄂托克前旗| 保山市| 荣成市| 名山县| 河北省| 汕头市|