网站大量收购闲置独家精品文档,联系QQ:2885784924

SQL文発行基準書.ppt

  1. 1、本文档共68页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

SQL文発行基準書<目次>1.はじめに2.本ドキュメントの位置付け3.チェックリスト4.チェック内容詳細5.データ移動処理方式チェックリスト6.データ移動処理方式チェック内容詳細1.はじめに本開発では、以下に示す規約に準拠し、開発を行うことを基本とする。2.本ドキュメントの位置付け本ドキュメントは、データベースのレスポンス確保を目的とし、開発に際して記述するSQL文についての記述制約および発行指針となるドキュメントとして位置付ける。3.チェックリスト下記のチェックリストにて、開発に際し、記述したSQLに対してチェックを行う。※チェックリストの詳細については[4.チェック内容詳細]を参照のこと。4.チェック内容詳細項番1項目インデックス列に対するLIKE述語は、できる限り前方一致検索を使用する内容インデックス列に対するLIKE述語は、前方一致の指定であればインデックス上で検索範囲を絞り込んで検索が行われる。これは条件式の評価が比較的容易であることから、使用しても性能上問題はない。しかし、中間一致や後方一致の指定、および非インデックス列への前方一致の指定は、インデックス上で検索範囲を絞り込むことができず、1行ごとに条件を満たすか評価することになる。そのため、この場合は他の条件で検索範囲をできる限り絞り込むこと。もし、条件式にインデックスが無い場合、DBは先頭の行から順番に条件に一致する行を検索する。そして、行が3万桁あれば3万回検索するため、できる限りインデックスを用いた方が良い。実際にソートされているのは、B*Treeインデックスの場合だけである。ビットマップインデックス、ハッシュインデックス、ngramインデックスなどはソートされていない。インデックスは文字通り「索引」であり、索引の構造はインデックスにより異なる。項番2項目条件式にはできる限り非インデックス列を含めない内容条件式にインデックス列を適切に使用することで、SQL文の応答時間が劇的に改善される可能性がある。インデックスは、列の値をソートしたデータ(*1)である。これを利用することで検索処理能力を高める事ができる。ただし、ヒット件数が極端に多い場合(数10%以上の場合)は、インデックスを用いることで、逆に性能が悪くなるため注意する。もし、条件式にインデックスが無い場合、DBは先頭の行から順番に条件に一致する行を検索する。そして、行が3万桁あれば3万回検索するため、できる限りインデックスを用いた方が良い。実際にソートされているのは、B*Treeインデックスの場合だけである。ビットマップインデックス、ハッシュインデックス、ngramインデックスなどはソートされていない。インデックスは文字通り「索引」であり、索引の構造はインデックスにより異なる。項番3項目検索条件には、できる限り四則演算/暗黙の型変換/関数を使用しない内容インデックス列に対する検索条件で四則演算や関数を使用すると、インデックス上での検索範囲の絞り込みに使用できなくなる。そのため、四則演算は業務処理で行い、検索条件には、変数または定数を指定する。非インデックス列への検索条件の場合にもメリットはない。暗黙の型変換は、最適化を邪魔するだけでなく、トラブルの原因になる可能性があるため、常に明示的な型変換を行う方が良い。四則演算の例良い例COMPUTEA=A+B:WHERE列1=:A悪い例WHERE列1-B=:A項番4項目グループ単位で件数を求める際には、「GROUPBY」句を使用して1回のSELECTで求める内容GROUPBY句を使用すると、グループ単位で指定した列で集計を行える。グループ毎にSELECTCOUNT(*)で件数を求めると、複数のSELECT文の発行が必要となりDBの処理が増える。そのため、「GROUPBY」句を用いて1回のSELECT文で件数を求めること。良い例SELECTXXXX,COUNT(*)FROM表名GROUPBYXXXXORDERBYXXXX;悪い例SELECTCOUNT(*)FROM表名WHEREXXXX=1;SELECTCOUNT(*)FROM表名WHEREXXXX=2;SELECTCOUNT(*)FROM表名WHEREXXXX=3項番5項目検索結果の行が1行以下と分かっている場合

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档