如何提升數(shù)據(jù)查詢的效率_第1頁
如何提升數(shù)據(jù)查詢的效率_第2頁
如何提升數(shù)據(jù)查詢的效率_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、如何提升數(shù)據(jù)查詢的效率?1首先檢查表的結(jié)構(gòu)是否合理,因為采用多表查詢的時候,看主外鍵的引用關(guān)系是否適當(dāng)如果不適當(dāng)則重新設(shè)置表結(jié)構(gòu)如果是應(yīng)用中的系統(tǒng),則不需要更改表的字段,只更改主外鍵關(guān)系如果數(shù)據(jù)庫中有較多的數(shù)據(jù),還應(yīng)采用索引提高查詢效率.3.如果表的列很少,不適合建索引表數(shù)據(jù)很少查詢,而經(jīng)常做nsert、delete、update動作,不適合建索引。因為Oracle需要對索引額外維護。建立索引后,select會快,當(dāng)執(zhí)行過多次的insert,delete,update后,會出現(xiàn)索引碎片,影響查詢速度,我們應(yīng)該對索引進行重組(即drop掉索引重新create)4.索引的類型分為:B-樹索引:適合

2、于大量的增、刪、改,大多數(shù)數(shù)據(jù)的索引默認(rèn)類型。位圖索引:適合于決策支持系統(tǒng)HASH索引、分區(qū)索引等。1、刪除重復(fù)的數(shù)據(jù):tom223scott182createtabletb_test(namevarchar(18),agenumber,addressVARCHAR2(18);insertintotb_test(name,age,address)values(tom,22,廣州);insertintotb_test(name,age,address)values(marry,23B:港);insertintotb_test(name,age,address)values(tom,22,香港);

3、insertintotb_test(name,age,address)values(alice,22,美國);insertintotb_test(name,age,address)values(tom,22,廣州);insertintotb_test(name,age,address)values(scott,18,美國);insertintotb_test(name,age,address)values(scott,18,廣州);刪除name所有重復(fù)數(shù)據(jù)DELETEFROMtb_testWHERENAMEIN(SELECTNAMEFROMtb_testGROUPBYNAMEHAVINGCOU

4、NT(*)1);保留一條-1.通過創(chuàng)建臨時表-注意:當(dāng)字段比較多(name、age、sex,address、phone.),但是判斷重復(fù)只是name和age字段,就不能使用distince了createtabletb_tmpasselectdistinctname,agefromtb_test;truncatetabletb_test;-清空表記錄insertintotb_test(NAME,age)selectNAME,agefromtb_tmp;-將臨時表中的數(shù)據(jù)插回來。如何通過sql語句完成分頁?Oraclselectrownum,bookIdfromrownum是偽列名,bookId是

5、列名(selectrownumrow_id,bookIdfromxiaoWJ_bookst)twhererow_idbetween10and20查10到20條記錄Mysql-sql=select*fromxiaoWJ_booksLIMIT?,?;第一個?是開始位置,第二個?是每頁顯示多少sqlServer2000-selecttop+pageSize+*fromxiaoWJ_bookswherebookIdnotin去掉前面+pageBegin+條后顯示+pageSize+條記錄(selecttop+pageBegin+bookIdfromxiaoWJ_booksorderbybookId)查

6、出整個表的前pageBegin條記錄orderbybookId2、紫光筆記本4月份的銷售總額SELECTSUM(s.pamount)FROMtb_prodp,tb_salessWHEREp.id=s.pidANDp.type=筆記本ANDp.mark=紫光ANDto_char(s.sdate,mm)=04;MySQL是month(s.sdate)=O43、找出完成銷售業(yè)務(wù)筆數(shù)最少的職員的姓名和他完成的業(yè)務(wù)數(shù)SELECT,COUNT(*)FROMtb_empe,tb_salessWHEREe.id=s.eidGROUPBY;-1.使用rownum,但是結(jié)果不準(zhǔn)確SELEC

7、T*FROM(SELECT,COUNT(*)FROMtb_empe,tb_salessWHEREe.id=s.eidGROUPBYORDERBYCOUNT(*)WHEREROWNUM=1;-2.SELECT,COUNT(*)FROMtb_empe,tb_salessWHEREe.id=s.eidGROUPBYHAVINGCOUNT(*)=(SELECTCOUNTFROM(SELECT,COUNT(*)ASCOUNTFROMtb_empe,tb_salessWHEREe.id=s.eidGROUPBYORDERBYCOUNT

8、(*)WHEREROWNUM=1);-3使用子查詢的ALLSELECT,COUNT(*)FROMtb_empe,tb_salessWHEREe.id=s.eidGROUPBYHAVINGCOUNT(*)=ALL(SELECTCOUNT(*)FROMtb_empe,tb_salessWHEREe.id=s.eidGROUPBY);-4.min(count(*)SELECT,COUNT(*)FROMtb_empe,tb_salessWHEREe.id=s.eidGROUPBYHAVINGCOUNT(*)=(SELECTMIN(COUNT(*)FROMtb_empe,tb_salessWHEREe.id=s.eidGROUPBY);-5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論