- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE / NUMPAGES
データベースアクセス指針説明書
第1版
文書番号
発行日付 2007/07/02
部門
作成者
承認者
■改版履歴
版 日付 作成者 査閲者 承認者 改版内容
1.0 2007/07/02 初版
■参考文書
文書番号
文書名
------- 目 次 -------
TOC \o 1-3 \h \z HYPERLINK 1. データベースアクセス指針 4
HYPERLINK 4. プログラム作成のガイドライン 13
HYPERLINK 13
4-2. 引数名の付け方について HYPERLINK 13
データベースアクセス指針
本システムで使用されるデータベースアクセスに関する基本的な指針について、設計上および製造上考慮すべき点を記述する。
データベースアクセス基本方針
回線速度が遅くてもそれなりのレスポンスが出るように、DBとのやりとり回数は極力少なく、かつ短時間で終わるように心がける。
DBアクセス部分をプログラミングする上で、実行パフォーマンスまたはメンテナンスの安易性のどちらかを選択する場合、基本的にはメンテナンスの安易性を優先する。
データベースの排他制御
Select…for update句による排他ロックが可能であるが、基本的には業務アプリケーション設計にて排他の問題を解決するよう設計者が判断する。
SQLコーデイングガイドライン
SQLコーディングガイドラインは、パフォーマンスに非常に影響を及ぼすSQL文のコーディングおよび動的SQLの使用に関するガイドラインを設定したものである。当ガイドラインの目的は、以下の3点である。
AP開発者のスキルによる処理効率のバラツキを少しでも減らす。
DBアクセス時に最適な経路でレコード処理を行う為のガイドラインを示す。
動的SQLを使用する場合は設計者へ申請する。
SQLコーディング規則
動的SQLは使用しない事を基本とし、万が一使用する場合は設計者へ使用を申請
する。
複数の表の問い合わせには、全て列名に表名を付ける(エイリアス可)。例) ○ SELECT EMP.EMP_NO,COMPANY.COMP_CODE
FROM EMP,COMPANY WHERE EMP.COMP_NO = COMPANY.COMP_CODE。
× SELECT EMP_NO,COMPANY_CODE FROM EMP,COMPANY
WHERE COMP_NO = COMP_CODE。
HAVING句の代用としてのWHERE句の使用HAVING句は全ての行を選択した後で選択行をろ過するので、SELECT文にはHAVING句を含めないようにする。
例) ○ SELECT REGION,AVG(LOC_SIZE) FROM LOCATION
WHERE REGION != ‘SYDNEY’ GROUP BY REGION。
× SELECT REGION,AVG(LOC_SIZE) FROM LOCATION GROUP BY REGION HAVING REGION != ‘SYDNEY’。
ビューのビューやSQL副問い合わせ句の中にビューを指定しないこうした文はオプティマイザを混乱させ全表走査を実行してしまう場合がある。
NOT INの代用としてのNOT EXISTSの使用
下記の例のような副問い合わせ文(×)では内部的なソート/マージが発生するため、パフォーマンスは悪くなる。改善する為には上段(○)のSQL文に置換する。
例) ○ 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_NO
NOT IN (SELECT DEPT_NO FROM DEPT WHERE DEPT_CAT = ‘A’)。
DISTINCTの代用としてのEXISTSの使用1対多関連の親を決定する為に利用する問合わせでは、SELECT???にDISTINCT修飾子が必要になる結合を避ける。例
原创力文档


文档评论(0)