ORACLEデータベースの使い方
このページでは、ORACLEデータベース、SQLの基礎知識からチューニングに関する情報など、実際に使えるサンプルを多数紹介しています。
ORACLEデータベースの使い方
ORACLEデータベースの基礎知識
・【初心者向け】SQLとは?基礎から分かりやすく解説
・バックグラウンドプロセスとは
・データベースバッファキャッシュと共有プール
・SGAとPGA
ORACLEの起動・停止
・インスタンスの起動と停止コマンド
・リスナーの起動と停止
・OEM(OracleEnterpriseManager)の起動と停止方法
SQLの基本構文
・SELECT文の書き方:サンプル多数あり
・INSERT文の書き方:サンプル多数あり
・UPDATE文の書き方:サンプル多数あり
・DELETE文の書き方:サンプル多数あり
・LIKE条件の書き方:サンプル多数あり
・CASE式の書き方:サンプル多数あり
・DECODE関数の書き方:サンプル多数あり
・IN条件の書き方
・BETWEEN条件の書き方
・WITH句の書き方や使い方
・【SQL整形】ルールや方法まとめ:サンプル多数あり
・やりがちな外部結合のミスや誤り
データベース
・データベースを作成・削除するSQL
・グローバルデータベース名を確認・変更するSQL
ユーザー
・ユーザー(スキーマ)を作成・変更・削除するSQL
・ユーザー(スキーマ)を丸ごとコピーする方法
・ユーザー(スキーマ)の一覧を確認するSQL
オブジェクト・システム権限
・権限とは?システム・オブジェクト権限について
・システム権限を付与・取消するSQL
・オブジェクト権限を付与・取消するSQL
・ユーザに付与されている権限を確認するSQL
・システム権限の一覧
・オブジェクト権限を確認するSQL
ロール
・ロールを作成・変更・削除するSQL
・ロールを付与・取消するSQL
・ロールの一覧を確認するSQL
・ロールに付与されている権限を確認するSQL
・ユーザに付与されているロールを確認するSQL
プロファイル
・プロファイルを作成・変更・削除するSQL
・プロファイルの一覧を確認するSQL
表領域
・表領域を作成・変更・サイズ拡張・削除する方法
・表領域の一覧や使用率を確認するSQL
・一時表領域を作成・変更・サイズ拡張・解放・削除する方法
テーブル
・テーブルを作成・変更・削除するSQL
・テーブルの一覧やサイズを確認するSQL
・テーブルの定義、列名一覧、名前(コメント)、DDLの確認方法
・テーブルの列(カラム)を追加・変更・削除するSQL
・計算せずにレコード件数、最大値、最小値、NULL値の個数を確認する方法
・パーティションテーブルの一覧・件数・設定内容を確認するSQL
・一時テーブルを作成するSQL
インデックス
・インデックス(索引)を作成・変更・削除するSQL
・インデックスの一覧を確認するSQL
・ビットマップ・ファンクション・逆キー・パーティションインデックスの作成
・グローバル索引とローカル索引の違いについて
ビュー
・ビューを作成・更新・削除するSQL
・マテリアライズドビューを作成・リフレッシュ・削除するSQL
・ビューやマテリアライズドビューの一覧や定義を確認するSQL
・マテリアライズドビューのリフレッシュ時にSELECTするとどうなるか。
シーケンス
・シーケンスを作成・変更・削除するSQL
・シーケンスの一覧を確認するSQL
トリガー
・トリガーを作成・変更・削除するSQL
・トリガーの一覧や定義を確認するSQL
プロシージャー・ファンクション・パッケージ
→PL/SQLの使い方
シノニム
・シノニムを作成・変更・削除するSQL
・シノニムの一覧を確認するSQL
データベースリンク
・データベースリンクを作成・変更・削除するSQL
・データベースリンクの一覧を確認するSQL
ディレクトリ
・ディレクトリオブジェクトを作成・変更・削除するSQL
・ディレクトリオブジェクトの一覧を確認するSQL
ORACLE関数
・文字列関数
・集計関数
・算術関数
・日付関数
・変換関数
・数学関数
データの取得
・SELECT文の書き方:サンプル多数あり
・SELECTした列名を別名(エイリアス)に変更する方法
・asでテーブル名やカラム名を別名に変更する方法
・任意の文字数と一致・以上・以下のデータを抽出する方法
・文字列を結合・連結する方法
・列の値やNULL値を置き換える方法
・空白やスペース、0、特定の文字を削除する方法
・トリムで空白(スペース)を削除する方法
・SUBSTR関数で文字列の一部を切り取り・抽出するSQL
・SQLで変更されたレコードの差分・差異を取得
・SELECT文でバインド変数を使って検索する方法
・並び順を指定し、レコードを昇順・降順に並び替える方法
・NULL値のソートの順を指定する方法
データの追加
・INSERTで日付を登録する方法:サンプル多数あり
・INSERT-SELECTの使い方:サンプル多数あり
・INSERT文でNULLを置き換えて登録する方法
・INSERTで列の値を空白埋めや0埋めする方法
・レコードが存在しない場合だけINSERTする方法
・INSERT文で重複を無視・チェック・回避する方法
・INSERT文を自動作成する方法
・DELETE-INSERTとUPDATEの違いや注意点
・INSERTしたレコードが0件でもエラーにならない
・INSERTでレコードが追加されないときの原因と対処
・同じ値や同じデータのINSERTはできる?
・INSERTでソート(sort)・並び替えは無効
・INSERTで「値の個数が多すぎます」の対処法
・INSERTで「値の個数が不足しています」の対処法
・INSERT,UPDATE,DELETE文の取り消し
データの更新
・文字列を一括置換する方法
・UPDATEでNULL値に更新する方法
・UPDATEでNULL値を空文字にする方法
・UPDATEでNULLだったら更新しない方法
・UPDATEで同じテーブルの値・別のテーブルの値で更新する方法
・UPDATEでCASE式を使って更新する方法
・UPDATEでテーブル名に別名(エイリアス)をつける
・UPDATE文で更新対象なし0件でもエラーにならない
・UPDATEで「nullには更新できません」の対処法
データの削除
・DELETE文でNULLレコードを削除する方法
・DELETEである表に存在しないデータを削除する方法
・DELETE文でサブクエリ(副問合せ)を使う方法
・DELETEとTRUNCATE・DROPテーブルの違い
・DELETEで対象なし0件でもエラーにならない
データベース管理
・ORACLEバージョンを確認するSQL
・ORACLEクライアントのバージョンを確認する方法
・オブジェクト(表や索引)の一覧やDDL文の確認方法
・行ロック待ちセッションやロックされたテーブルの確認
・起動中のプロセスやセッションの確認と強制終了(キル)する方法
・エクスポート・インポートする方法
ツール
・SQL実行ツールosqleditのオススメ設定
・WindowsバッチでsqlplusからSQLを実行する方法
・Windowsバッチでsqlplusの取得結果をCSVファイルに出力する方法
・スナップショットの取得と設定変更
SQLが遅くなる原因
・SQLが突然遅くなる原因と対応方法
・SQLのレスポンスが遅い原因3つ
・SQLで集約関数LISTAGGを使うと遅い!?
・JOINを使って表結合するとSQLが遅い!?
パフォーマンスの調査
・遅いSQL(処理時間が長い)と実行回数の多いSQLの確認方法
・DISK読取回数の多いSQL(I/O負荷の高い)の確認する方法
・SQLの実行計画を取得する方法
・表や索引の統計情報を取得する方法
・表の統計情報取得日を確認するSQL
・PGA使用量を確認するSQL
・ハードパースされた回数を確認する方法
・本番環境に影響を与えずに索引を検証する方法
チューニングの基礎知識
・テーブルやインデックスの統計情報とは
・「統計情報が古い」とはどういうことか
・オプティマイザと実行計画について
・SQLの実行計画の見方
・SQLのヒントとは
・SQLヒントの書き方:サンプル多数あり
・SQLに実装すべき3つのSQLヒント
・実際に現場で使ったSQLのヒント句
・SQLに複数のヒントの書き方
・SQLにヒント句を追加するリスクやデメリット
・インデックスの項目の順番の正しい付け方
・索引(インデックス)を作成するリスクやデメリット
・ハードパースとは
・パフォーマンスを左右する待機イベント
・SQLプロファイルとは
・インデックスが使用されないケース
・SQLがパラレル実行されない原因
・1つのSQLにテーブルは何個まで書いて良い?
・ブロックサイズによるI/O性能の違い
・非標準ブロックサイズの表領域を作る方法
・SQLチューニングアドバイザの結果は信頼できるのか?
・KEEPバッファにインデックス(INDEX)を置くべきかどうか
・バッチ処理でSQLは遅くないけど、処理に時間がかかる原因
・DBサーバのメモリを増やした方がいい理由
チューニング
・SQLチューニングのコツ
・SQLをパラレル実行する方法
・SQLを変更せずにソートをチューニングする方法
・ハードパースを削減する方法
・レスポンスを遅くするソート処理が発生する原因
・ソート処理が遅いときのチューニング方法
・副問合せを使うSQLをチューニングする方法
・GROUP BYが遅いときのチューニング方法
・EXISTSを使って遅い場合のチューニング方法
・WITHを使って遅い場合のチューニング方法
・IN句をEXISTS句に置き換えするチューニング方法
・OR句の置き換えによるチューニング方法
・アクセスの無駄をなくしてSQLを高速化する方法
・ワークテーブルを使ってSQLチューニングする方法
・インデックスを高速に作成・再構築する方法
・表の断片化を解消する3つの方法
SELECT文のチューニング
・SELECT文のチューニング方法まとめ
・SELECT文が遅いときのインデックス作成によるチューニング方法
・ビュー(VIEW)が遅い原因とSQLチューニング方法
・マテリアライズドビューが遅い原因とSQLチューニング
・テーブルアクセスフルスキャンを無くしてチューニングする方法
・ExadataでSQLをチューニングする方法
INSERT文のチューニング
・INSERT文のチューニング方法まとめ
・たまに遅い&大量のINSERT処理のチューニング方法
・主キーにシーケンスを使っている表へのINSERTのチューニング方法
UPDATE文のチューニング
・UPDATE文が遅いときのチューニング方法
DELETE文のチューニング
・DELETE文が遅いときのチューニング方法
・テーブルのデータを全件高速に削除する方法
エラー
・アーカイブログが一杯でDISK容量パンクの対処法
・ORA-4031は共有プールの断片化が原因の可能性あり
・バッチ処理が一時表領域不足で異常終了したときのレアな原因と対処法
・LISTENERのポート番号の変更が上手くいかないときの対処法
・エラー「java.sql.SQLException:クローズされた接続です」の原因
・データベース暗号化(TDE)に伴う性能劣化
学習方法
・【独学可能】SQLの勉強方法とおすすめの本:分かりやすく解説
・自宅で勉強用にORACLEデータベースを無償でダウンロードし構築する方法
・おすすめのORACLE参考書まとめ
・初心者にオススメのチューニングの参考書
・DBのチューニング勉強方法
・OracleMasterSilverに一ヵ月で合格した勉強方法
・OracleMasterGold12cに一ヵ月で合格した勉強方法
・OracleMasterExpertパフォチューに一ヵ月で合格した勉強方法