タグ

2010年4月22日のブックマーク (3件)

  • Part3 データベースの仕組みを基礎から学ぶ

    SQLが実行されるまでには,SQLの文法をチェックしたり,実行効率を上げるために書き換える処理など,いくつかの工程があります。また,RDBMSのレコードの検索ではBツリー・インデックスやビットマップ・インデックス,テーブルの結合ではソート・マージ結合やハッシュ結合など,常に最適な方法でデータの検索を実行しています。最近のRDBMSは,SQL文の最適な実行計画を作成して実行するコスト・ベース方式が主流です。 「正しいSQL文を発行しているはずなのに処理にやたらと時間がかかる」という経験をお持ちの方はたくさんいらっしゃると思います。それは,SQL文を書いた人がRDBMSの内部構造を理解していないということが原因である場合がほとんどです。ここでは,RDBMSSQL文を処理して,プログラマが意図するデータを引き出すまでの過程を追いながら,RDBMSの内部構造に迫っていきます。 効率を見積もって実

    Part3 データベースの仕組みを基礎から学ぶ
  • Part2 複雑なSELECT文やSQL高速化のコツ

    WHERE句を使ってレコードを検索する場合,AND,OR,INなどを利用すれば複雑な条件の検索が可能です。ただし,テーブルの結合時にテーブル名付きの列名にしなかったり,インデックスを利用できないようなSQLの書き方だと,SQLの検索パフォーマンスが低下する場合があります。このほかトランザクション処理を実装することで,SQLの一連の更新処理を「なかったこと」にすることもできます。 SELECT文でレコードを引き出すと,同じデータがいくつも入っていることがあります。例えば,Part1で作成したt_hanbaiテーブルから,納品日(ndate)のデータを引き出すと,7月12日というデータが二つ見つかります(図1)。 レコード数が少ないうちはあまり問題になりませんが,レコードが増えてくると,重複するデータは一つにまとめて表示したいという場合も出てきます。例えば,「xxさんに納品したのはいつだったか

    Part2 複雑なSELECT文やSQL高速化のコツ
  • Part1 SQLの基本を理解しよう

    SQLで重要なのはDML(データ操作言語)としてのSELECT,INSERT,UPDATE,DELETEの四つのコマンドです。このうちデータを取得するSELECTは最も多用するもので,値を集計したり,あいまい検索したり,二つのテーブルを結合する機能も持っています。テーブルの結合には,どちらのテーブルを親とするかで内部結合/外部結合の違いがあり,検索結果も変わってくるので注意が必要です。 SQLはリレーショナル・データベース管理システム(RDBMS)を操作するための言語です。データベース・プログラミングでは,RDBMSSQLを投げかける(「発行する」と言います)ようにプログラムを開発します。どんなプログラム言語を使っていても,プログラムから発行するSQLに違いはありません。また,SQLはANSI(米国規格協会)などによって国際的に規格化されていますので,どのRDBMS製品に対してもほとんど

    Part1 SQLの基本を理解しよう