oracle+SQL最佳化執行個體

來源:互聯網
上載者:User

標籤:

1.     減少I/O操作:

SELECT COUNT(CASE WHEN empno>20 THEN 1 END) c1,COUNT(CASE WHEN empno<20 THEN 1 END) c2
FROM emp;
2. 通過rowid訪問

SELECT ROWID,emp.* FROM emp
WHERE ROWID=chartorowid(‘AAAHW7AABAAAMUiAAA‘)

3.    使用索引唯一掃描

SELECT empno,ename FROM emp
WHERE empno=‘2000‘

4.    使用並串連符號會使oracle忽略使用索用,即使是唯一索引

SELECT empno,ename FROM emp
WHERE empno||ename=‘2000naem‘

改成這樣就可使用索引了

SELECT * FROM emp
WHERE empno=2000 AND ename=‘dd‘

5.    索引範圍掃描

SELECT * FROM emp
WHERE empno<7000

6where條件子句的解析順序是從下到上的

SELECT a.empno,b.dname FROM emp a,deptb
WHERE a.ename<‘CLERK‘
AND a.deptno=b.deptno;

耗時1.016秒
 
SELECT a.empno,b.dname FROM emp a,dept b
WHERE  a.deptno=b.deptno
AND a.ename<‘CLERK‘;

耗時0.813

7.    使用萬用字元會使oracle不去使用索引

SELECT ename FROM emp
WHERE ename LIKE ‘%C%‘

應改成

SELECT ename FROM emp
WHERE ename LIKE ‘C%‘

 

8.    使用唯一索引尋找精確值是最快的,而索引範圍掃描比較適合尋找>=,<=的資料

SELECT a.itemid
FROM   pt_sche_detail a,
       pt_post_role   b
WHERE  a.itemid = b.taskid
AND    a.docid = 2281
AND    a.itemid != 1169015
AND    a.status != 0
AND    b.posttype = 1
AND    b.roleid = 1022
AND    b.roletype = 1

上面的語句改成:

SELECT a.itemid
FROM   pt_sche_detail a,
       pt_post_role   b
WHERE  a.itemid = b.taskid
AND    a.docid = 2281
AND    a.itemid != 1169015
AND    a.status != 0
AND    b.taskid IN
       (SELECT itemid
         FROM   pt_sche_detail temp
         WHERE  temp.docid = 2281
         AND    rownum <= (SELECT COUNT(itemid)FROM pt_sche_detail temp WHERE temp.docid = 2281))
AND    b.roleid = 1022
AND    b.roletype = 1
AND    b.posttype = 1

 

oracle+SQL最佳化執行個體

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.