SQLコーディング规约sql规范编程规范.doc_第1页
SQLコーディング规约sql规范编程规范.doc_第2页
SQLコーディング规约sql规范编程规范.doc_第3页
SQLコーディング规约sql规范编程规范.doc_第4页
SQLコーディング规约sql规范编程规范.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

文書番号:発行部門: 指針説明書第1版 文書番号発行日付部門作成者承認者改版履歴 版日付作成者査閲者承認者 改版内容 1.02007/07/02初版参考文書文書番号文書名目次指針4基本方針4排他制御45()規則5()文共有為6()索引利用文8()FROM句順序10作成11索引作成11論理構造11索引付列式選択12作成13変数名付方13引数名付方13 指針本使用関基本的指針、設計上製造上考慮点記述。 基本方針(1) 回線速度遅出、DB回数極力少、短時間終心。(2) DB部分上、実行安易性選択場合、基本的安易性優先。 排他制御(1) Selectfor update句排他可能、基本的業務設計排他問題解決設計者判断。 、非常影響及文動的使用関設定。当目的、以下点。 開発者処理効率少減。 時最適経路処理行為示。 動的使用場合設計者申請。() 規則 動的使用事基本、万一使用場合設計者使用申請。 複数表問合、全列名表名付(可)。例) SELECT EMP.EMP_NO,COMPANY.COMP_CODE FROM EMP,COMPANY WHERE EMP.COMP_NO = COMPANY.COMP_CODE;SELECT EMP_NO,COMPANY_CODE FROM EMP,COMPANYWHERE COMP_NO = COMP_CODE; HAVING句代用WHERE句使用HAVING句全行選択後選択行過、SELECT文HAVING句含。例)SELECT REGION,AVG(LOC_SIZE) FROM LOCATIONWHERE REGION != SYDNEY GROUP BY REGION;SELECT REGION,AVG(LOC_SIZE) FROM LOCATION GROUP BY REGION HAVING REGION != SYDNEY; 副問合句中指定文混乱全表走査実行場合。NOT IN代用NOT EXISTS使用下記例副問合文()内部的発生、悪。改善為上段()L文置換。例) SELECT * FROM EMP E WHERE NOT EXISTS (SELECT X FROM DEPT WHERE DEPT_NO = E.DEPT_NO AND DEPT_CAT = A); SELECT * FROM EMP WHERE DEPT_NONOT IN (SELECT DEPT_NO FROM DEPT WHERE DEPT_CAT = A); DISTINCT代用EXISTS使用対多関連親決定為利用問合、SELECTDISTINCT修飾子必要結合避。例) SELECT DEPT_CODE,DEPT_NAME FROM DEPT D WHERE EXISTS (SELECT X FROM EMP E WHERE E.DEPT_CODE = D.DEPT_CODE); SELECT DISTINCT DEPT_CODE,DEPT_NAME FROM DEPT D,EMP E WHERE D.DEPT_CODE = E.DEPT_CODE; EXISTS代用結合使用一般副問合行、表結合行。 使用禁止将来的表項目追加場合、使用変更必要可能性使用。勿論使用方有効設計者判断場合限。 作成/削除禁止内管理困難為、内作成、及削除行禁止。() 文共有為同文再度発行場合、解析分析繰返必要無為、文記述方法以下規則統一。 同一内容文(全体的含)全大文字、小文字統一。当小文字統一事。社提供HTP利用場合、限 半角 ():, *|両側区切。 改行統一例: SELECT * FROM EMP; 文以下文同一。 SELECT * FROMEMP; SELECT * FROM emp; SELECT * FROM Emp; SELECT * FROM EMP; () 索引利用文表使用索引最大限利用為文必要。実際索引使用方良場合、状況判断行事。索引利用方良、利用方良表物理的変為、(実際ORACLE格納行数関係)全場合共通的利用出来存在。通常、大表程索引付検索方高速。以下記基準全索引利用為。 索引付列計算回避(但MINMAX外) WHERE句条件関数索引付列使用索引使用禁止。例) SELECT .FROM AAAA WHERE SALARY = 25000/12; SELECT .FROM AAAA WHERE SALARY * 12 25000; 索引付列NOT回避NOTWHERE句条件指定索引使用。索引使用場合、NOT使用形置換事考。例) SELECT .FROM AAAA WHERE DEPT_CODE 0; OR代替UNION使用(但両方列索引付場合限)OR使用全表走査実行。例) SELECT LOC_ID,LOC_DESC,REGION FROM LOCATIONWHERE LOC_ID = 10 UNION SELECT LOC_ID,LOC_DESC,REGION FROM LOCATIONWHERE REGION = MELBOURNE; SELECT LOC_ID,LOC_DESC,REGION FROM LOCATIONWHERE LOC_ID = 10 OR REGION = MELBOURNE; 索引中NULL回避NULL使用場合索引使用。上必要場合、NULL使用場合考、置換可能場合NULL使用文置換。 ORDER BY代替WHERE使用ORDER BY句下記条件場合、索引使用。 ORDER BY句構成列全同順序一索引含。 ORDER BY句構成列全表定義NOT NULL定義。条件文索引使用場合、WHERE句使用。例) ORDER BY DEPTNO WHERE DEPTNO 0 索引列型変換時問題異列型比較際、ORACLE自動的列型変換実行、 変換方法、文字型方TO_NUMBER関数使用変換。従、索引使用時、索引付文字型列数値型列比較 行。 例) EMP_NO(数字型) EMP_TYPE (文字型)場合 SELECT .FROM EMP WHERE EMP_NO = _123; 内部ORACLE123TO_NUMBER関数数字型変換。 索引定義EMP_NO関数使用、 上記文索引使用。 SELECT .FROM EMP WHERE EMP_TYPE = 123; 内部ORACLEEMP_TYPETO_NUMBER関数数字型変換。 索引定義EMP_TYPE関数使用索引使用。 WHERE句用文時注意事項(索引使用) SUBSTR関数 SUBSTR関数使用場合索引使用。 LIKE置換可能場合SUBSTR関数使用LIKE置換。 LIKE関数、最後付時索引使用。 例) WHERE ACCOUNT_NAME LIKE CAPITAL%; WHERE SUBSTR(ACCOUNT_NAME,1,7) = CAPITAL; != 関数 != 関数使用場合、索引使用。 TRUNC関数 例)WHERE TRANS_DATE BETWEEN TRUNC(SYSDATE) ANDTRUNC(SYSDATE)+.99999; WHERE TRUNC(TRANS_DATE) = TRUNC(SYSDATE); | 関数 |関数使用場合、索引使用。 例) WHERE ACCOUNT_NAME = AMEX AND ACCOUNT_TYPE = A; WHERE ACCOUNT_NAME | ACCOUNT_TYPE = AMEXA; 演算子(+,-,*,/)関数 演算子関数、索引列対処理場合索引使用。 例) WHERE AMOUNT 2000; WHERE AMOUNT + 3000 5000; 同索引列対索引付列比較 例) WHERE ACCOUNT_NAME LIKE NVL(:ACC_NAME,%); WHERE ACCOUNT_NAME = NVL(:ACC_NAME,ACCOUNT_NAME);() FROM句順序SELECT文、複数表JOIN場合、FROM句最後書表駆動表呼。駆動表設定、SELECT文大影響、以下設定仕方示。 表2場合、数少表駆動表。 表3以上場合、JOIN交差表駆動表設定。JOIN場合、FROM句最後。 作成索引作成索引表小割合行選択問合改善。一般的、表全体行2% 4% 未満問合場合、表対索引作成。索引取出状態、索引付列式他表結合使用状態、値高可能性。次仮定基。 問合参照同値持行、表割当全体一様分布。 表行、問合参照対並。 表列数比較的少規模。 表対問合、比較的単純WHERE 句使用。 率低、。仮定、表問合当場合、通常、問合表少25% 行限索引有効。論理構造最適化、問合実行有効索引使用避役立、SQL 、表対定義索引使用、継続的索引必要。索引、I/O 中心CPU I/O 大量必要場合。万一備索引作成薦。索引必要作成。索引関最適維持、使用索引削除必要。EXPLAIN PLAN 使用SQL処理、結果計画獲得、実行計画参照索引検出。使用索引、必、通常有効。内、文実行計画調査明索引使用方法。特、Oracle 、外部制約施行子表共用使用回避、外部索引 (非)使用。多、外部索引、決(、)問合。索引付列式選択、索引付列式。索引付索引選択、次従。WHERE 句頻繁使用索引付検討。SQL 文表結合頻繁使用索引付検討。高度選択性索引付。索引選択性、索引付同値持行表内割合。同値持行場合、索引選択性最適。表行数索引付列値種類割索引選択性判断。ANALYZE 文使用、値取得。算出選択性百分率直。選択性低索引、分布偏、1 2 値他値非常少頻度発生場合役立。値WHERE 句頻繁出現、頻繁出現値認識列統計集計場合、索引役立。異値持式標準B*-tree 索引使用。通常式選択性劣、頻繁選択値他値比少場合除、最適化。場合、多重度高OLTP 実行限、索引使用効果的。(、本索引外) 作成変数名付方型変数名統一行、XXX自由付、格納名称。 型 変数名(可変)変数名(固定)-CHAR型WC_XXXCC_XXXVARCHAR型WV_XXXCV_XXXLONG型WL_XXXCL_XXXNUMBER型WN_XXXCN_XXX DATE型WD_XXXCD_XXX

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论