「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。

インデックスの仕組みを理解してSQLを劇的に高速化する方法

インデックスの仕組みを理解してSQLを劇的に高速化する方法

SQLの処理が遅いと感じたとき、多くの人が「サーバが遅いのでは?」と思いがちです。しかし、実際の原因の多くは「インデックス(索引)」の使い方にあります。この記事では、インデックスの基本構造から、実際のチューニング手法までを体系的に解説します …

SQL:MERGE文でINSERTとUPDATEを一度に行う効率的な方法

SQL:MERGE文でINSERTとUPDATEを一度に行う効率的な方法

MERGE文とは? SQLのMERGE文は、対象テーブルにデータが存在する場合はUPDATE、存在しない場合はINSERTを1回の処理でまとめて行える便利な構文です。従来は「UPDATE → 該当しなければINSERT」といった2回の処理が …

Oracle DBでORA-12170「接続タイムアウト」が出る場合の調査方法

Oracle DBでORA-12170「接続タイムアウト」が出る場合の調査方法

Oracleデータベースに接続しようとした際に、ORA-12170: TNS: 接続タイムアウトが発生しました というエラーが出ることがあります。このエラーは、クライアントからデータベースへの接続要求がタイムアウトした場合に発生します。ネッ …

正規表現(REGEXP)でSQLがもっと楽になる!実践パターン集

正規表現(REGEXP)でSQLがもっと楽になる!実践パターン集

SQLの検索でよく使われる LIKE 句は便利ですが、複雑な条件指定には限界があります。そこで強力な武器となるのが 正規表現(REGEXP)。この記事では、基本的な使い方からよく使うパターン、さらに「SQLで利用できる正規表現の一覧」をまと …

Oracle:COALESCE関数の使い方

Oracle:COALESCE関数の使い方

oracleの独自関数のCOALESCE(コアレス)関数の用途についてメモしておきます。 COALESCE関数とは COALESCE関数は引数のリストから最初のNULL以外の値を返却するOracle独自関数となります。 NVL2関数との違い …

Oracle:NVL関数とNVL2関数の違い

Oracle:NVL関数とNVL2関数の違い

oracleの独自関数としてNVL関数やNVL2関数があります。 知ってると結構便利な関数なので、この2つの関数の違いについて整理しておきます。 NVL関数とは NVL関数は第1引数がNULLなら第2引数の値(代替値)を返します。 もし第1 …

INSERT文を指定回数分ループして実行する方法

INSERT文を指定回数分ループして実行する方法

性能試験などであるテーブルに大量データの作成が必要になった場合にINSERT文をループで処理できれば便利!という事で、SQLとロジックを組み合わせたストアドプロシージャでのサンプルプログラムとなります。 ストアドプロシージャ [crayon …

Oracle:事前構成済の表領域

Oracle:事前構成済の表領域

Oracleではデータベースを作成すると自動的に以下の表領域が作成されます。 事前構成済の表領域     関連記事 Oracle:DESCRIBEコマンドでテーブル(表)構造を確認する方法 SQL:システム日付と誕生日を元に年齢、誕生日まで …