RDBMS 理解度の壁: プロダクションや運用保守で困らないシステムを作れる知識 <<<それっぽく動くものを作れる知識 実際のシステムで遭遇・見聞きした事象をもとに、上記のスキマにある各種 RDBMS 知識を説明します。 RDBMS 本体の運用よりも、現実のアプリケーションにおける設計…
TPCベンチマークで実行計画と処理時間を比較してみた 前回まで、機能の比較を行ってきましたが、机上で機能だけ比較してみてもデータベースの良さは分かりません。同じデータで同じSQLを実行してみてどのような実行計画でどのような処理時間になるのか?を調べてみたいと思います。実行する処理について特定のお客様で使用した処理では、客観性が無いことと処理内容を公開出来ないので、ここではTPCベンチマークを採用することにしました。 TPCベンチマークとは、TPC(Transaction Processing Performance Council)という組織が客観的かつ検証可能な性能データを広めるために策定したベンチマークテストです。そのベンチマークテストにはTPC-C / TPC-H / TPC-R / TPC-Wなどがあり、昔から有名なのは、更新性能(業務系システムを想定したワークロード定義)を計るT
データベース機能比較(続き) やはり、SQL実行計画で欠かせないデータベースの機能としてパーティショニングとパラレル実行処理が上げられます。 パーティショニング比較 PostgreSQL/MySQLともにパーティショニングはサポートしていますがOracle/MySQLがデータベースの基本機能として実装されているのに対してPostgreSQLでは、Ver9までは、トリガーやチェック制約で実装されていました。トリガーで実装されているとOracle/MySQLに比較すると少しパフォーマンスや運用面で心配になってしまいます。但し、これは、Version.9まで。Version.10では、Oracle/MySQLと同等のパーティショニングが実装されました。 また、パーティショニングの種別は、RANGE/LIST/HASHなどありますがその対応状況は、下表の通りです。パーティショニングで特徴的なのがV
1. 初めにDBにおける処理はSQLによって記述しますが、データの取得するために具体的にどのような内部処理を行うかという点までは記述しません。 ここでいう内部処理とは「SQLの書き換え」「インデックスの使用」「結合アルゴリズムの選択」などがDBMSのオプティマイザによって選択されて実施されることを指します。 SQLのパフォーマンスを見るにあたっては上記の内部処理について正しく理解する必要があります。 本Blogでは、重要なアルゴリズムであるにもかかわらず、まとまった情報が少ないSQL実行時におけるブルームフィルタ(Bloom Filter)についてOracleをもとに紹介を行います。 Bloom Filterは結合処理を効率化するために、結合の前段階で利用される技術になります。 公式なドキュメントとしては以下になります。 Oracle Database SQLチューニング・ガイド 12cリ
はじめに Oracleデータベースでテーブル内のデータを一時的にバックアップしておきたいときは、Data Pumpという機能でファイルにエクスポートすることができます。 この記事では、Data Pumpを使ったテーブル単位でのエクスポートとインポートの方法について書いています。 【オラクル認定資格試験対策書】ORACLE MASTER Bronze[Bronze DBA11g](試験番号:1Z0-018)完全詳解+精選問題集 (オラクルマスタースタディガイド)posted with amazlet at 15.02.11エディフィストラーニング株式会社 飯室 美紀 岡野 友紀 西 昭彦 鈴木 佐和 ソフトバンククリエイティブ 売り上げランキング: 8,271 Amazon.co.jpで詳細を見る 環境 Oracle Database 11g EE 11.2.0.1.0 Windows Se
Oracle DB へのインポート インポートとは、簡単に言うと「データベースに外部ファイルからデータを登録すること」。 Oracle DB へインポートを行う際、 datapump ユーティリティを使用するのが一般的。 実行する際は、エクスポート時に出力した dmp (ダンプファイル)がインプットとなる。 対象は業務データそのものだけではなく、メタデータ(データディクショナリで管理される定義情報)も扱える。 旧 imp コマンドに比べはるかに高速になり、対象データ単位やインポート時の変更など、 オプション・パラメータを使い分けることで柔軟な対応が可能となっている。 例えば、impdp でデータのみを対象とする(content=data_only)、事前に既存データを削除する(table_exists_action=truncate)などが良く使われるオプション。 また、スキーマの変更(r
はじめに Oracle Databaseを使ったアプリケーション開発で、Oracleが実行したSQLをログ出力して確認したいときがあります。 Oracleのトレースログを有効にすると、実行したSQLをログに吐き出してあとから確認することができます。 新・門外不出のOracle現場ワザ エキスパートが明かす運用・管理の極意 (DB Selection)posted with amazlet at 13.01.10小田 圭二 大塚 信男 五十嵐 建平 谷 敦雄 宮崎 博之 神田 達成 村方 仁 翔泳社 売り上げランキング: 145,950 Amazon.co.jp で詳細を見る トレースログの出力場所を確認する はじめにsysユーザで接続して、トレースログの出力場所を確認します。 以下のコマンドを実行すると、トレースログがどこに出力されるかを確認することができます。 conn sys/orac
1.ロックの基本情報取得 SQL> SELECT * FROM V$LOCK WHERE TYPE IN ('TX','TM'); ADDR KADDR SID TYPE ID1 ID2 LMODE REQUEST CTIME BLOCK -------- -------- ----- ---- --------- ------- ------ ------- ----- ----- 0840E798 0840E868 13 TX 196609 115 6 0 9 0 0332772C 03327740 13 TM 3378 0 3 0 9 0 列名 データ型 格納されているデータの内容 KADDR RAW(4) ロックアドレス SID NUMBER ロックを保持しているセッションID TYPE VARCHAR2(2) 要求しているロックタイプ。 TM: DML
photo credit: candrews via photopin cc はじめに Oracle DBを操作するOracle SQL DeveloperでSQLの実行計画を取得する方法を紹介します。 図解入門よくわかる最新Oracleデータベースの基本と仕組み (How‐nual Visual Guide Book)posted with amazlet at 14.05.17水田 巴 秀和システム 売り上げランキング: 30,337 Amazon.co.jpで詳細を見る Oracle SQL Developerの入手 Oracle SQL Developerは以下のページからダウンロードできます。(要ユーザ登録) Oracle SQL Developer ダウンロード Oracle SQL DeveloperでSQLの実行計画を取得する 1.Oracle SQL Developerで
photo credit: __MaRiNa__ via photopin cc はじめに Oracle DBでSQLの実行計画を取得するにはいくつかの方法があります。 この記事では実行計画を取得する3つの方法をまとめました。 新・門外不出のOracle現場ワザ エキスパートが明かす運用・管理の極意 (DB Selection)posted with amazlet at 14.05.17小田 圭二 大塚 信男 五十嵐 建平 谷 敦雄 宮崎 博之 神田 達成 村方 仁 翔泳社 売り上げランキング: 14,912 Amazon.co.jpで詳細を見る 1.手軽にexplain plan forを使う 以下のクエリを実行して、PLAN_TABLEを作成します。 @C:\app\Administrator\product\11.2.0\dbhome_1\RDBMS\ADMIN\utlxplan.
Oracle10gから、expdp/impdpユーティリティが 追加されました。 今後、データ移行はData Pumpになるみたいです。 従来のexp/impは廃止されているわけでなく、 下位バージョンからのデータ移行用のために残されています。 Data Pumpを使用するには、imp/expユーティリティと違って はじめに、ディレクトリオブジェクトが必要です。 ディレクトリオブジェクトとは、 Oracleからそのパスが参照できるようにする設定です。 従来のUTL_FILE_DIRとほぼ同じです。 実際に移行してみますと、 ユーザ単位でのエクスポート・インポートは exp/impユーティリティより、3分の2くらいでできました。 それでは、やってみましょう! ◆手順1 ディレクトリオブジェクトの作成 expdp/impdpで使用するディレクトリを作成します SQL> CREATE DIREC
[Oracle] exp/impとexpdp/impdbのパフォーマンス比較 Oracle 10g から Data Pump という機能が導入されました。 Oracle の従来のバージョンではデータのエクスポート/インポートを行うためにエクスポート/インポートユーティリティ(exp/imp)を使っていましたが、今後のバージョンでは Data Pump のエクスポート/インポートユーティリティ(expdp/impdp)が標準となります。 Data Pump を使うとより高速なインポート/エクスポートが可能になるということなのですが、実際どの程度速くなるものなのでしょうか? 簡単に検証してみました。 まずはエクスポートについてですが、以下の3パターンであるスキーマをエクスポートしてみました。 ● exp によるエクスポート exp system/manager@orcl owner=USER1
ダイレクト・パス・インサート (ダイレクト・ロード・インサート) ダイレクト・パス・インサートとは、データベースバッファを経由せずデータファイルへ 直接データを落とし込むという点から、ある特定条件下で非常に優れた処理方法である。 データベースのバッファ処理を経由しないことで高速に処理でき、バッファから他のキャッシュを追い出すことによるキャッシュヒット率の低下を防ぐこともできる。 高速に大量データをインサートさせるための手法 ダイレクト・パス・インサートによる高速のインサート処理にはトレードオフがあるが脅威的な速さを誇る。 数百万件オーダのデータの投入するのに数分とかからない(レコードサイズ、スペックに左右はされる) 通常のパスのローディングに比べて 数分の1 程度の時間で投入できる。 NOLOGGING 状態の場合 REDO ログが出力されない。(高速にはなる一方でフルバックアップするまで
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く