国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

ORACLE SQL性能優(yōu)化系列(五)

2024-08-29 13:33:00
字體:
供稿:網(wǎng)友
7.     減少訪問數(shù)據(jù)庫的次數(shù) 當(dāng)執(zhí)行每條SQL語句時(shí), Oracle在內(nèi)部執(zhí)行了許多工作: 解析SQL語句, 估算索引的利用率, 綁定變量 , 讀數(shù)據(jù)塊等等. 由此可見, 減少訪問數(shù)據(jù)庫的次數(shù) , 就能實(shí)際上減少ORACLE的工作量.例如,    以下有三種方法可以檢索出雇員號(hào)等于0342或0291的職員.
方法1 (最低效)
    SELECT EMP_NAME , SALARY , GRADE    FROM EMP     WHERE EMP_NO = 342;    SELECT EMP_NAME , SALARY , GRADE    FROM EMP     WHERE EMP_NO = 291;
方法2 (次低效)
    DECLARE         CURSOR C1 (E_NO NUMBER) IS         SELECT EMP_NAME,SALARY,GRADE        FROM EMP         WHERE EMP_NO = E_NO;    BEGIN         OPEN C1(342);        FETCH C1 INTO …,..,.. ;        …..        OPEN C1(291);       FETCH C1 INTO …,..,.. ;         CLOSE C1;      END;方法3 (高效)
    SELECT A.EMP_NAME , A.SALARY , A.GRADE,
            B.EMP_NAME , B.SALARY , B.GRADE
    FROM EMP A,EMP B
    WHERE A.EMP_NO = 342
    AND   B.EMP_NO = 291;
注重:
在SQL*Plus , SQL*Forms和PRo*C中重新設(shè)置ARRAYSIZE參數(shù), 可以增加每次數(shù)據(jù)庫訪問的檢索數(shù)據(jù)量 ,建議值為2008.       使用DECODE函數(shù)來減少處理時(shí)間使用DECODE函數(shù)可以避免重復(fù)掃描相同記錄或重復(fù)連接相同的表.
例如:
   SELECT COUNT(*),SUM(SAL)   FROM EMP   WHERE DEPT_NO = 0020   AND ENAME LIKE ‘SMITH%’;   SELECT COUNT(*),SUM(SAL)   FROM EMP   WHERE DEPT_NO = 0030   AND ENAME LIKE ‘SMITH%’;你可以用DECODE函數(shù)高效地得到相同結(jié)果
SELECT COUNT(DECODE(DEPT_NO,0020,’X’,NULL)) D0020_COUNT,
        COUNT(DECODE(DEPT_NO,0030,’X’,NULL)) D0030_COUNT,        SUM(DECODE(DEPT_NO,0020,SAL,NULL)) D0020_SAL,        SUM(DECODE(DEPT_NO,0030,SAL,NULL)) D0030_SALFROM EMP WHERE ENAME LIKE ‘SMITH%’;
類似的,DECODE函數(shù)也可以運(yùn)用于GROUP BY 和ORDER BY子句中.

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 天津市| 河津市| 荥经县| 梓潼县| 城固县| 枣庄市| 武陟县| 盱眙县| 新乐市| 米林县| 阜阳市| 曲水县| 松阳县| 嘉峪关市| 象州县| 高碑店市| 岢岚县| 霸州市| 故城县| 万源市| 邻水| 珠海市| 十堰市| 灵石县| 鸡西市| 扶风县| 汪清县| 巩留县| 金乡县| 当雄县| 屏南县| 甘德县| 石河子市| 横峰县| 阿图什市| 积石山| 伊宁市| 祁连县| 崇仁县| 石泉县| 邳州市|