SQL– tag –
-
Oracle
Oracle「ORA-00060: デッドロックが検出されました」発生原因と解決策
ORA-00060: deadlock detected while waiting for resource は、Oracleデータベースが相互にロックし合う処理を検出し、処理を強制終了した際に発生するエラーです。トランザクション同士が互いに待ち状態に陥るデッドロック(Deadlock)が原因です。 本記... -
SQL
SQL:実行計画(EXPLAIN PLAN)の読み方とボトルネックの見つけ方
データベースチューニングにおいて「どのSQLが遅いのか」だけでなく、「どの処理がボトルネックなのか」を正しく把握することは非常に重要です。そのための基本ツールが実行計画(EXPLAIN PLAN)です。 本記事では、Oracleを例に実行計画の見方とボトルネ... -
SQL
インデックスの仕組みを理解してSQLを劇的に高速化する方法
SQLの処理が遅いと感じたとき、多くの人が「サーバが遅いのでは?」と思いがちです。しかし、実際の原因の多くは「インデックス(索引)」の使い方にあります。この記事では、インデックスの基本構造から、実際のチューニング手法までを体系的に解説します... -
SQL
SQL:MERGE文でINSERTとUPDATEを一度に行う効率的な方法
MERGE文とは? SQLのMERGE文は、対象テーブルにデータが存在する場合はUPDATE、存在しない場合はINSERTを1回の処理でまとめて行える便利な構文です。従来は「UPDATE → 該当しなければINSERT」といった2回の処理が必要でしたが、MERGEを使うことで1回のSQL... -
SQL
SQL:インデックスヒント(INDEX HINT)でクエリ最適化を行う方法
1. インデックスヒントとは? SQLのインデックスヒント(INDEX HINT)とは、データベースに対して「このテーブルでは特定のインデックスを使用して実行してほしい」と明示的に指示するための構文です。通常、DBエンジン(オプティマイザ)が自動で最適な実... -
SQL
SQL:ウィンドウ関数(OVER句)でランキング・累計を計算する
データ分析やレポート作成では、「順位付け」 や 「累計」 のような集計処理がよく登場します。従来はサブクエリや自己結合を使う必要がありましたが、SQLの ウィンドウ関数(OVER句) を使えば簡潔に記述できます。この記事では、代表的な使い方と主要DBM... -
Oracle
🧩 Oracle「ORA-01000: 最大オープン・カーソル数を超えました」対処手順
🔍 エラー概要 🧠 原因と仕組み Oracle では、SQL 実行時に「カーソル」という内部ハンドルを使用して SQL 文を管理します。アプリケーションが PreparedStatement や ResultSet を閉じずに再利用し続けると、未解放のカーソルが蓄積し、open_cursors パラ... -
SQL
SQL:NOT IN と NOT EXISTS の違いとパフォーマンス比較
SQLでサブクエリを使って除外条件を指定する際に利用される「NOT IN」と「NOT EXISTS」。両者の動作の違いやNULLの扱い、パフォーマンス差を実例付きで徹底解説します。 EXISTS は ANSI SQL(国際標準SQL)に含まれる構文 のため、ほぼすべてのリレーショ... -
Oracle
Oracle「ORA-06502: PL/SQL 数値または値エラー」エラーが出た時の解決方法
Oracle データベースを利用していると、「ORA-06502: PL/SQL: 数値または値エラー」というエラーに遭遇することがあります。これは比較的よく見られるエラーの一つで、主に「データ型の不一致」や「文字列長の超過」が原因です。この記事では、このエラー... -
SQL
SQL便利技:PIVOTとUNPIVOTで自由自在に表を変換する方法
SQLを使ってデータを扱うとき、表の形を「横持ち」や「縦持ち」に変換したい場面は多々あります。例えば、月ごとの売上を列ごとに並べたい、あるいはアンケート結果を1列にまとめたいなど。 こうした「表の回転」に便利なのが PIVOT と UNPIVOT です。本記...



