タグ

*SQLとチューニングに関するyamadarのブックマーク (3)

  • SQL高速化のカギは「時間=道のり/速さ」 シンプルな考え方がデータ処理を変える

    世界中の技術者を対象に、最新技術の動向をシェアする『Oracle Code Tokyo』が2017年5月18日に行われました。普段DBAを指南しているディレクター・柴田 長氏が「Live Challenge!! SQLパフォーマンスの高速化の限界を目指せ!」というテーマで、デモンストレーションを実施。Oracle Database 12cの最新テクノロジーを駆使して、SQLの高速化を実演しながら説明しました。 パラレル化で複数CPUコアを駆使 柴田長氏:続いていきましょう。 「パラレル化で複数CPUコアを使いこなせ!」、ミッション3です。先ほどパーティション化したCPUバウンドのSQLのアクティビティを見きました。8つのCPUコアがありますが、どうしても1CPUコアのボトルネックになっていました。これ、もったいないですよね。 なぜ起きるかと言うと、SQLの実行ではCPUコアが1つしか使えま

    SQL高速化のカギは「時間=道のり/速さ」 シンプルな考え方がデータ処理を変える
  • ブロックアルゴリズムとB-Treeアルゴリズム

    ファイルサーチを高速化するB-Treeアルゴリズム ext2、ext3がベースとするブロックアルゴリズムは、ブロック数が対応するディスクのジオメトリ数に制限されること、ファイルサーチにO(n)かかる(注)こと、ファイルサイズに関係するパフォーマンス低下など、いくつかの問題があった。 注:「O(n)」とは、実行時間が入力の大きさ「n」に比例するアルゴリズムである。O(n)は「nのオーダー」または「オーダーn」と読む。後述する「O(log n)」は、アルゴリズムの計算量に関する議論の場合logの底は常に2で、O(log n)の方がO(n)よりも効率が良い。例えばn=8の場合、O(log n)は入力8に対して3回の実行で済むが、O(n)は8回の実行となる。 ReiserFS、JFS、XFSといったファイルシステムでは、こうしたブロックアルゴリズムの限界に対して、早い段階からデータベースの技術をフ

    ブロックアルゴリズムとB-Treeアルゴリズム
  • インデックスの基礎知識

    ■ インデックスとは データベースの世界で、インデックス(索引)とはテーブルに格納されているデータを 高速に取り出す為の仕組みを意味します。 インデックスを適切に使用することによってSQL文の応答時間が劇的に改善 される可能性があります。 インデックスにはB-Treeインデックスをはじめ、ビットマップインデックス、 関数インデックスなどの種類がありますが、ここでは最も一般的に使われ、かつ ほとんどのDBMSでサポートされているB-Treeインデックスについて解説します。 ※ CREATE INDEX文でオプションを指定しない場合は通常B-Treeインデックスが 作成されます。 ■ B-Treeインデックスのしくみ B-Tree(Balanced Tree)インデックスは次のようなツリー状の構造になっています。 ツリーの先頭はヘッダブロックと呼ばれています。ヘッダブロックでは、キー値の 範囲

  • 1