SQL編程規范整理


一、排版規范

1.代碼縮進

    對於判斷、循環等處理使用字符縮進

    縮進的空格最好不要使用TAB鍵

2.空格及換行

    變量定義、相對獨立的程序塊等要單獨成行,便於閱讀

    太長的程序(超過110列)應做換行處理

    操作符前后加入空格

3.書定習慣

    不同操作類型的操作符用括號隔離

    表、字段別名用意義的名稱替代

    所有書寫使用大寫,方面移植

二、命名規范

1.存儲過程

    ”SP_“作為前綴

2.函數

    “F_”作為前綴

3.觸發器

    “TR_”作為前綴

4.視圖

    “V_”作為前綴

5.鏈接服務

    “LNK_”作為前綴

6.主鍵

    “PK_”作為前綴,表名在后,如:PK_表名

7.外鍵

    “FK_”作為前綴,主表名,從表名,如:FK_主表_從表

8.索引

    “ID_”作為前綴,列名在后,如:ID_COLNAME

9.序列

    “SEQ_”作為前綴

三、通用SQL性能優化

1.索引使用

    盡量使用“>=”或,不要使用“>”

    LIKE盡量前端匹配

    盡量不要使用“<>”

   條件中不要使用函數

   條件中不要使用計算

   條件中盡量不要使用NOT

   盡量避免使用OR

   合理利用復合索引

2.SQL優化

    避免使用復合SQL語句(如:SELECT A,B FROM TABLE1 WHERE A IN )(SELECT A1 FROM TABLE2))

    盡量避免使用DISTINCT

    盡量避免直接使用自定義函數

    對於查詢比較復雜,數據量較大的查詢,可以使用工具進行查詢計划檢測,調整語句性能

    不要在存儲過程或函數中反復訪問同一張表,如果需要,可以將數據放在臨時表中使用。

    應盡量減少控制語句的檢查次數,以提高執行效率

    如果能從一條SQL語句中獲取多個想要的數據,就不要分多條SQL語句分分次獲取

    在長度和精度和精度允許的情況下,建議用INTERGE代替NUMERIC,在可以提高性能的情況下,使用EXISTS代替IN,NOT EXISTS 代替NOT IN

    查詢的WHERE過濾原則,應使過濾記錄數最多的條件

    多表連接查詢時,可以先按條件過濾在進行連接

    select、insert子句的代碼中不允許出現“*”以代替查詢所有字段,必須用實際的字段名代替

    提高GROUP BY的執行效率,在進行GROUP BY 之前將不需要條件過濾掉

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM