国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
PL/SQL書寫規(guī)范

一、 Sql&PL/SQL書寫規(guī)范:
1、 語句中出現(xiàn)的所有表名、字段名全部小寫,系統(tǒng)保留字、內(nèi)置函數(shù)名、Sql保留字大寫。
2、 連接符or、in、and、以及=、<=、>=等前后加上一個空格。
3、 對較為復(fù)雜的sql語句加上注釋,說明算法、功能。
  注釋風(fēng)格:注釋單獨成行、放在語句前面。
    (1)   應(yīng)對不易理解的分支條件表達式加注釋;
    (2)   對重要的計算應(yīng)說明其功能;
    (3)   過長的函數(shù)實現(xiàn),應(yīng)將其語句按實現(xiàn)的功能分段加以概括性說明;
    (4)   每條SQL語句均應(yīng)有注釋說明(表名、字段名)。
    (5)  常量及變量注釋時,應(yīng)注釋被保存值的含義(必須),合法取值的范圍(可選)
    (6)  可采用單行/多行注釋。(-- 或 /* */ 方式)
4、 SQL語句的縮進風(fēng)格
(1)  一行有多列,超過80個字符時,基于列對齊原則,采用下行縮進
   (2)  where子句書寫時,每個條件占一行,語句令起一行時,以保留字或者連接符開始,連接符右對齊。
5、 多表連接時,使用表的別名來引用列。
6、 供別的文件或函數(shù)調(diào)用的函數(shù),絕不應(yīng)使用全局變量交換數(shù)據(jù);
7、 變量令名不能超出ORACLE的限制(30個字符),令名要規(guī)范,要用英文令名,從變量上能看到變量的作用,如
g名稱          全局變量
m名稱          局部變量
c名稱          光標(biāo)
p名稱          參數(shù)
8、 查找數(shù)據(jù)庫表或視圖時,只能取出確實需要的那些字段,不要使用*來代替所有列名。要清楚明白地使用列名,而不能使用列的序號。
9、 功能相似的過程和函數(shù),盡量寫到同一個包中,加強管理。

如例(1)

二、 書寫優(yōu)化性能建議
 1、避免嵌套連接。例如:A = B and B = C and C = D
 2、where條件中盡量減少使用常量比較,改用主機變量
 3、系統(tǒng)可能選擇基于規(guī)則的優(yōu)化器,所以將結(jié)果集返回數(shù)據(jù)量小的表作為驅(qū)動表(from后邊最后一個表)。
 4、大量的排序操作影響系統(tǒng)性能,所以盡量減少order by和group by排序操作。

如必須使用排序操作,請遵循如下規(guī)則:
(1) 排序盡量建立在有索引的列上。
(2) 如結(jié)果集不需唯一,使用union all代替union。
5、索引的使用。
(1) 盡量避免對索引列進行計算。如對索引列計算較多,請?zhí)嵴埾到y(tǒng)管理員建立函數(shù)索引。
(2) 盡量注意比較值與索引列數(shù)據(jù)類型的一致性。
(3) 對于復(fù)合索引,SQL語句必須使用主索引列
(4) 索引中,盡量避免使用NULL。
(5) 對于索引的比較,盡量避免使用NOT=(!=)
(6) 查詢列和排序列與索引列次序保持一致

 6、盡量避免相同語句由于書寫格式的不同,而導(dǎo)致多次語法分析,盡量使用Bind變量。
      7、盡量使用共享的SQL語句。
8、查詢的WHERE過濾原則,應(yīng)使過濾記錄數(shù)最多的條件放在最前面。
      9、任何對列的操作都將導(dǎo)致表掃描,它包括數(shù)據(jù)庫函數(shù)、計算表達式等等,查詢時要盡可能將操作移至等號右邊。
10、in、or子句常會使用工作表,使索引失效;如果不產(chǎn)生大量重復(fù)值,可以考慮把子句拆開;拆開的子句中應(yīng)該包含索引。

三、其他經(jīng)驗性規(guī)則
   1、盡量少用嵌套查詢。如必須,請用not exist代替not in子句。如例(2)
 2、用多表連接代替EXISTS子句。如例(3)
 3、少用DISTINCT,用EXISTS代替 如例(4)
 4、使用UNION ALL、MINUS、INTERSECT提高性能
 5、使用ROWID提高檢索速度。對SELECT得到的單行記錄,需進行DELETE、UPDATE操作時,使用ROWID將會使效率大大提高。
 6、使用優(yōu)化線索機制進行訪問路徑控制。
 7、使用cursor時,顯示光標(biāo)優(yōu)于隱式光標(biāo)

本規(guī)范示例:
 例一:
    SELECT aka042 -- 單位繳費劃入個人帳戶比例
    INTO prm_aaa043
    FROM ka01 --醫(yī)療保險單位繳費劃入個人帳戶比例分段信息
    WHERE akc021 = rec_kc01.akc021 -- 醫(yī)療人員類別
    AND aka041 >= rec_kc01.akc023 -- 年齡上限
    AND aka040 <= rec_kc01.akc023 -- 年齡下限
    AND aae030 <= prm_date -- 開始時間
    AND ( aae031 >= prm_date OR aae031 IS NULL ); -- 終止時間
   
 例二:  
   X SELECT ......
    FROM emp
    WHERE dept_no NOT IN ( SELECT dept_no
    FROM dept
    WHERE dept_cat=‘A‘);
   
   O SELECT ......
    FROM emp e
    WHERE NOT EXISTS ( SELECT ‘X‘
    FROM dept
    WHERE dept_no=e.dept_no
    AND dept_cat=‘A‘);

 例三:
   X SELECT ......
           FROM emp
    WHERE EXISTS ( SELECT ‘X‘
    FROM dept
    WHERE dept_no=e.dept_no
    AND dept_cat=‘A‘);
   
   O SELECT ......
    FROM emp e,dept d
    WHERE e.dept_no=d.dept_no
    AND dept_cat=‘A‘;
 
 例四:
   X SELECT DISTINCT d.dept_code,d.dept_name
    FROM dept d ,emp e
    WHERE e.dept_code=d.dept_code;
   
   O SELECT dept_code,dept_name
    FROM dept d
    WHERE EXISTS ( SELECT ‘X‘
    FROM emp e
    WHERE e.dept_code=d.dept_code);


注釋范例
過程注釋:
過程都以sp_開頭,注意過程名稱要符合令名要求
/**************************************************************************
name:sp_Write_log
parameter:p_textContext in varchar2 參數(shù)描述
create date:2003-04-1
creater:chen jiping
desc:過程總功能描述
****************************************************************************/
函數(shù)注釋
函數(shù)以f開頭,令名符合令名標(biāo)準(zhǔn)
/**************************************************************************
name:f_Get_JobId
parameter:p_Name in varchar2 參數(shù)描述
return number:返回值描述
create date:2003-04-1
creater:chen jiping
desc:函數(shù)總功能描述
****************************************************************************/

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ORACLE索引與高性能SQL介紹
SQL優(yōu)化34條[SQL收藏]
oracle sql 優(yōu)化分析點
高效率Oracle SQL語句
sql優(yōu)化
SQL部分優(yōu)化
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服