19c

oracle

Oracle テーブルのサイズ(使用状況)を調べる

たまに上司やお客様より「テーブルのサイズいくら?」と質問がきます。大抵の場合「このテーブルの存在はどの程度Disk容量を消費しているのだろうか」という事が知りたいようです。質問の通りテーブルのサイズを返答するだけでなく「インデックスのサイズ...
oracle

Oracle マテビュー(マテリアライズドビュー)を作成する

正式にはマテリアライズド・ビュー(MATERIALIZED VIEW)と呼称します。VIEWと異なり、実際にデータを保持しています。VIEWではパフォーマンスに耐えられないような状況であってもマテビューで検索パフォーマンスを上げる事ができま...
oracle

Oracle統計情報について(正式にはオプティマイザ統計)

統計情報とはオプティマイザが正確な実行計画を作成するために必要な情報です。統計情報の収集方法は自動と動的、そして手動があります。基本的には自動+動的に任せてフレッシュな状態を維持しておけば良いのですがイレギュラーに大量データの更新や追加が発生した時などは、手動での統計情報取得を実施しないとオプティマイザが正しいプランを選択されない場合もあります。
データ・ディクショナリ

Oracle 表領域の役割

表領域には大別して5つの表領域があります。基本以下5つの表領域はデフォルトで作成されて、主な役割は以下の通りです
データ・ディクショナリ

Oracle カラム一覧(テーブルのカラム情報)

DBA_TAB_COLS DBA_TAB_COLSはDBA_TAB_COLUMNSと異なり、非表示列(HIDDEN_COLUMN=YES)も保持しています。普段から何かとテーブルのカラム情報を確認する事がありまして、毎回必要な項目を探して打...
oracle

Oracle LONG型をVARCHAR型へ変換する

SQLだけでLONG型をVARCHAR2型へ変換する事はできないようです。LONGデータをTO_LOBファンクションで変換してCLOBカラムへINSERTします。そのCLOBをTO_CHARファンクションでVARCHAR型へ変換する。といったイレギュラーな方法をとらないと実現できません。
oracle

Oracle カラム値の自動採番

内部キーを自動生成すべくOracleの自動採番機能を試します。11gまでのバージョンでは事前にシーケンスを作成しておいて、insertのタイミングでnextvalしていく方法がオーソドックスでしたが、先日あるトランザクションテーブルを新設す...
oracle

ORA-02292とORA-02266が発生した時の原因調査方法

「ORA-02292: 整合性制約×××に違反しました。 ORA-02266: 表には有効な外部キーによって参照される一意キー/主キーが含まれています。」何れも FOREIGN KEY (外部キー) に関わるデータの整合性を壊さないようにす...
oracle

Oracle ユーザ(スキーマ)を作成する

ユーザは「CREATE USER」システム権限を保持していないと作成できません。(DBAロールは「CREATE USER」システム権限を持っているのでDBAロールを保持している場合でも作成できます。)
oracle

Oracle ジョブ

Oracle内部にもジョブ管理の仕組みがあります。事前に登録したプロシージャや、SQLを計画実行する事ができます。crontabや運用管理ソフトからわざわざ起動をかけなくてもOracle単体で完結します。個人的にはパフォーマンス調査のための...