freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

sql語(yǔ)句性能優(yōu)化-資料下載頁(yè)

2025-10-12 04:42本頁(yè)面
  

【正文】 eads和Writes都不算特別大,那么有可能是以下原因:,也就是說(shuō)該存儲(chǔ)過(guò)程被阻塞所以才花了那么多時(shí)間。這種情況只需要把該存儲(chǔ)過(guò)程提出,多執(zhí)行幾 次,看是不是仍然Duration很大但Reads不大。,里面的TSQL語(yǔ)句就是五六百行,編譯出的執(zhí)行計(jì)劃也是一堆,里面進(jìn)行了大量的邏輯判斷、大量函數(shù)的調(diào)用,這種情 況下進(jìn)行調(diào)優(yōu)就比較痛苦了。實(shí)際上這次我調(diào)優(yōu)的這個(gè)項(xiàng)目就是如此,抓取出來(lái)的存儲(chǔ)過(guò)程盡是復(fù)雜的邏輯,少則兩三百行代碼,多則五六百行,里面還有大量的用 戶定義函數(shù)的調(diào)用。對(duì)于這種存儲(chǔ)過(guò)程,我接下來(lái)會(huì)專門寫篇博客介紹下我們這個(gè)項(xiàng)目是如何調(diào)優(yōu)的。,但是需要對(duì)數(shù)據(jù)進(jìn)行大量的運(yùn)算。哈希聯(lián)接、聚合函數(shù)、DISTINCT、UNION等都是比較耗CPU的。如果是這 種情況那就看能不能建立索引或者改寫法進(jìn)行調(diào)優(yōu)。前面說(shuō)的是Duration大而Reads小的情況,當(dāng)然更常見(jiàn)的情況是Duration和Reads都很大。那么我們就將主要精力集中在如何減小 Reads上。造成Reads很多的原因大概有以下幾種:。對(duì)表t1進(jìn)行查詢,條件是where c2=abc返回c1,c2,c3三個(gè)字段,那么這種情況下如果沒(méi)有對(duì)c2建立非聚集索引(c1是主鍵,建立了聚集索引),那么這個(gè)查詢將會(huì)進(jìn)行“聚集索 引掃描”,本來(lái)可能只查出幾條記錄的,結(jié)果要把表的所有記錄都掃描一篇,自然Reads就高了。解決辦法就是建立相應(yīng)的索引,比如這里只需要對(duì)c2字段建 立非聚集索引,然后將c3字段作為包行列就行了。如果只是最c2字段建立非聚集索引,那么前面說(shuō)到的查找在進(jìn)行了“非聚集索引查找”后還會(huì)進(jìn)行“鍵查找” 來(lái)找到c3列的值,所以要建立的正確的索引才行。查詢?nèi)绻环蟂ARG原則,那么即使建立了索引也沒(méi)法使用。SARG就是查詢參數(shù)的意思,具體怎么寫才符合 SARG,大家可以百度,已經(jīng)有很多相關(guān)文章了,我就不累述。也就是說(shuō)即使建立了正確的索引,查詢也符合SARG使用到了該索引,但是由于涉及的數(shù)據(jù)量太大了,所以Reads仍 然很大。這種情況就不能再?gòu)乃饕筒樵內(nèi)胧郑荒軓臄?shù)據(jù)庫(kù)的設(shè)計(jì)入手。是否能夠增加適當(dāng)?shù)娜哂嘧侄?,?duì)數(shù)據(jù)庫(kù)進(jìn)行反范式化,或者如果數(shù)據(jù)的實(shí)時(shí)性要求不 高的話則可以建立中間匯總表,使用SQL作業(yè)來(lái)維護(hù)這個(gè)中間匯總表,查詢的時(shí)候只查詢?cè)撝虚g匯總表即可?;蛘呤欠窨梢越⑺饕晥D或者計(jì)算列,然后在計(jì)算 列中建立索引的方式進(jìn)行一個(gè)預(yù)運(yùn)算,減小實(shí)際查詢時(shí)涉及的數(shù)據(jù)量。如果對(duì)視圖的定義很復(fù)雜,涉及的表很多,在查詢的時(shí)候使用了該視圖,但是實(shí)際上只用到了視圖中的一張或兩張表,對(duì)視圖 的查詢會(huì)造成系統(tǒng)根據(jù)視圖定義查詢其他與該查詢不相關(guān)的表。所以在使用視圖的時(shí)候一定要知道視圖的定義,不用貪圖一時(shí)的方便而隨便使用視圖。一個(gè)存儲(chǔ)過(guò)程中幾百行代碼,出于編寫方便,大量的調(diào)用了一個(gè)用戶定義表值函數(shù),而該函數(shù)是進(jìn)行了復(fù)雜的查詢 和運(yùn)算才返回結(jié)果的。如果數(shù)次或者數(shù)十次的調(diào)用該用戶定義表值函數(shù),那么就會(huì)進(jìn)行很多這種復(fù)雜的查詢和運(yùn)算,自然Reads也就很大了。解決辦法是盡量減 少對(duì)這種復(fù)制函數(shù)的調(diào)用,比如一次調(diào)用后就將解決保存在表變量或臨時(shí)表中,接下來(lái)再使用的話就使用該表變量或臨時(shí)表即可。如果Duration并不大,但是Reads卻很大的查詢?nèi)匀恍枰枰M(jìn)行優(yōu)化。雖然表現(xiàn)出來(lái)消耗的時(shí)間并不大,但是由于Reads很多,那么說(shuō)明 要進(jìn)行大量的IO,在高并發(fā)的情況下大量的IO處理不過(guò)來(lái)會(huì)加重磁盤的負(fù)擔(dān),造成CPU占用率上升,性能降低,這時(shí)其Duration就會(huì)變大。關(guān)于 Duration不大但是Reads很大的情況仍然是前面說(shuō)到的幾點(diǎn)情況,建立相關(guān)索引、修改查詢語(yǔ)句等便可解決。第五篇:sql常用語(yǔ)句//創(chuàng)建臨時(shí)表空間create temporary tablespace test_temptempfile 39。E:39。size 32mautoextend onnext 32m maxsize 2048mextent management local。//創(chuàng)建數(shù)據(jù)表空間create tablespace test_dataloggingdatafile 39。E:39。size 32mautoextend onnext 32m maxsize 2048mextent management local。//創(chuàng)建用戶并指定表空間create user username identified by passworddefault tablespace test_datatemporary tablespace test_temp。//給用戶授予權(quán)限//一般用戶grant connect,resource to username。//系統(tǒng)權(quán)限grant connect,dba,resource to username//創(chuàng)建用戶create user user01 identified by u01//建表create table test7272(id number(10),name varchar2(20),age number(4),joindate date default sysdate,primary key(id))。//存儲(chǔ)過(guò)程//數(shù)據(jù)庫(kù)連接池?cái)?shù)據(jù)庫(kù)連接池負(fù)責(zé)分配、管理和釋放數(shù)據(jù)庫(kù)連接////創(chuàng)建表空間create tablespace thirdspacedatafile 39。C:/Program Files/Oracle/39。 size 10mautoextend on。//創(chuàng)建用戶create user binbinidentified by binbindefault tablespace firstspacetemporary tablespace temp。//賦予權(quán)限GRANT CONNECT, SYSDBA, RESOURCE to binbin//null與的區(qū)別簡(jiǎn)單點(diǎn)說(shuō)null表示還沒(méi)new出對(duì)象,就是還沒(méi)開(kāi)辟空間個(gè)對(duì)象裝的是空字符串。//建視圖create view viewnameassql//建索引create index indexname on tablename(columnname)//在表中增加一列alter table tablename add columnname columntype//刪除一列alter table tablename drop columnname//刪除表格內(nèi)容,表格結(jié)構(gòu)不變truncate table tableneme//新增數(shù)據(jù)insert into tablename()values()//直接新增多條數(shù)據(jù)insert into tablename()selecte a,b,cfrom tableabc//更新數(shù)據(jù) new除了對(duì)象,但是這“”表示update tablename set columnname=? where//刪除數(shù)據(jù)delete from tablenamewhere//union語(yǔ)句sqlunionsql//casecasewhen thenelseend
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1