Oracleの現場を効率化する100の技

[表紙]Oracleの現場を効率化する100の技

A5判/432ページ

定価(本体2,980円+税)

ISBN 978-4-7741-7332-0

電子版

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

システム構築の現場で,データベースにまつわる様々な課題を抱えていませんか?Oracle Databaseには,広く知られてない開発効率を向上したり,問題を解決する機能が豊富に備わっています。本書では,Oracleを知り尽くしたデータベースコンサルタントが豊富な現場経験をもとに100の便利技を紹介します。「パフォーマンス管理」「トラブルシューティング」「システムテスト」などシーン別に解説。サンプルスクリプトも豊富に掲載しているので忙しい方でもすぐに実践できます。経験が浅い方からベテランまで,すべてのOracle Databeseユーザー必携の一冊。

こんな方におすすめ

  • Oracleの基本は理解できているが,新しい機能を使いこなせていないユーザー
  • データベースの課題をスマートに解決したい方

著者の一言

システム構築プロジェクトの現場では,データベースのパフォーマンス管理やトラブルシューティング,データの有効活用など,さまざまな問題を抱えていますよね。たとえば,次のような問題で困ったことはありませんか。

  • アプリケーションを何も変えていないのにデータベースの処理時間が急激に長くなってしまった。
  • データベースを統合したら,1つのシステムだけが多くのCPUリソースを使ってしまった。
  • 性能試験中に,本番相当のワークロードをシミュレーションするための準備に,労力を要した。
  • データベースを使って統計解析したいが,SQLだけではやりたいことが実現できなかった。

実は,これらデータベースの問題は,Oracleの機能で解決できたりします。Oracle Databaseは,Oracle 7,8i,9i,10g,11g,そして12cへと,進化し続けています。単なるデータ処理を行うリレーショナルデータベース管理システムとしてだけではなく,エンタープライズ用途の管理や,開発および運用支援などデータベースインフラストラクチャとして機能強化がなされてきました。繰り返しになりますが,Oracleには,作り込まないことで開発効率が向上したり,要件を実現する選択肢が増えたり,システムライフサイクルを強力に支援してくれるデータベース機能が豊富に備わっています。

しかし,こうしたデータベースの便利な機能を紹介した本は,世の中には見当たりません。Oracleの魅力あふれる機能を知っていれば,データベースを申し分なく活用することができます。これら機能を,システムライフサイクルを通して多くのシステムの開発や運用の現場で徹底的に活用しているデータベースコンサルタントであれば,分かりやすく解説することができます。こう考えたことが本書を手掛けるきっかけとなりました。 そこで,本書では,皆さんに使ってもらいたい選りすぐりの機能を以下のカテゴリで100のTipsにまとめました。

  • パフォーマンス管理のTips
  • トラブルシューティングのTips
  • アーキテクチャのTips
  • 開発・運用に役立つTips
  • システムテストのTips
  • データマイニングのTips

多忙な方でもすぐに試してもらえるように,たくさんの設定手順やサンプルスクリプトを載せました。過去からOracle Databaseを使っている人や,Oracle Databaseの基本はわかっている人が,便利な機能を使う際に手間取らないようにするべきだと考えたからです。1つのTipsは,どのようなシーンに使えて,どのような効果があるか(便利になったか)を分かりやすく,2~3ページ程度にコンパクトにまとめています。対応するバージョンは,11gリリース2および12cリリース1(執筆時点の最新)です。追加のライセンスが必要な機能については,明記しました。ぜひ本書を読んでいただき,ご自身が関わるデータベースをより良いものにして頂ければ幸いです。

目次

第1章 パフォーマンス管理のTips

  • 1 実行計画を理解する
  • 2 適切な表の結合方法の選択と定石
  • 3 カバーリングインデックスでアクセスブロック数を減らす
  • 4 NOT IN句でパフォーマンスが出ない場合の対応法
  • 5 パーティションを活用してアクセスブロック数を減らす
  • 6 SQLをパラレルクエリで高速化する方法
  • COLUMN アプリケーションによるパラレル化の注意点
  • 7 大量レコードのINSERTを高速化する方法
  • 8 SPMを使って実行計画を管理する
  • COLUMN SQL計画管理とは
  • 9 SPMアーキテクチャを理解する
  • COLUMN SPMの登録方法
  • 10 SPMを利用したハード解析の仕組みを理解する
  • COLUMN SIGNATUREとPLAN_ID
  • 11 SPMへ実行計画を登録する
  • 12 SPMが利用できていることを確認する
  • 13 SQLを書き変えずに実行計画を変更する
  • 14 過去の実行計画でSQLを実行する
  • COLUMN SQLチューニングセット(STS)
  • 15 SPMを別データベースへ移行する
  • 16 システム開発でのSPM導入の勘所

第2章 トラブルシューティングのTips

  • 17 スピーディにトラブル原因を切り分けるテクニック
  • COLUMN Oracleのエラー内容の確認方法
  • 18 AWRのイベントの一歩進んだ見方
  • 19 インターコネクトのボトルネックを見つけ出すパフォーマンス分析のコツ
  • 20 2つのAWRレポートをスマートに比較する
  • 21 自動パフォーマンス診断機能を使う
  • 22 遅いSQLの原因を自動的に分析する
  • COLUMN SQLチューニングの事前スクリーニング
  • 23 既に実行されたSQLと実行計画を取得する~AWRとV$SQL~
  • 24 SQLが遅いと感じたときのチェックリスト
  • 25 実行時間の長いSQLを調査する
  • 26 ASHを利用して今起きている問題や短期間の問題を分析する
  • 27 待機イベントのパラメータ列からセグメントを特定する
  • 28 物理I/Oを減らす~待機イベント処方箋(1)
  • 29 一時表領域へのアクセスを減らす~待機イベント処方箋(2)
  • 30 SQL情報を漏れなく取得する
  • COLUMN 特定のSQLのトレースのみを取得する方法
  • 31 実行計画が変化した原因を調査する
  • 32 SQL性能分析情報を取得する
  • 33 ADRCIを使ってスムーズにサポート問合せをする

第3章 アーキテクチャのTips

  • 34 自動メモリ管理機能の使いどころを理解する
  • 35 自動共有メモリ管理機能の調整ルールとIMMEDIATEモードを理解する
  • 36 共有プールの仕組みを理解してORA-4031エラーを防ぐ
  • 37 共有プール設計の勘所
  • COLUMN DEFERREDモードと,IMMEDIATEモード
  • 38 共有プールを効果的に監視する
  • 39 PGAのメモリ増加を抑える
  • 40 PGAが想像以上に増加する原因と対策
  • 41 PGA_AGGREGATE_TARGETが実行計画に与える影響
  • 42 ラージページで大規模メモリ環境でのトラブルに対処する
  • 43 オンライン索引再構築と通常の索引再構築を使い分ける
  • 44 索引の作成順番が実行計画に与える影響を理解する
  • 45 意図しないパラレルクエリの実行を防ぐ
  • 46 削除処理の高速化テクニック
  • 47 NOLOGGINGオペレーションを効果的に使う
  • 48 NOLOGGINGオペレーションの副作用に注意する
  • 49 ロールバックの時間を見積もる
  • 50 コネクションプーリングが使えない環境で新規接続を高速化する

第4章 開発・運用に役立つTips

  • 51 SQL*Plusを使いこなす作業効率化技
  • 52 SQL*Plusを使いこなす検証技
  • 53 SQL*Plusを使いこなすトラブルシュート技
  • 54 オブジェクトの定義情報を確認してSQL文を簡単に作成する
  • 55 簡単にテストデータを作成する
  • 56 PL/SQLのボトルネックを調査する
  • 57 Enterprise Managerを使って簡単かつ確実にDBオブジェクトを管理する
  • 58 Enterprise Managerを使って定期的にDB稼働状況の詳細なレポートを作成する
  • 59 Enterprise Managerを使ってリアルタイムにSQL実行状況を監視する
  • COLUMN リアルタイムSQL監視のSQL実行計画行数制限について
  • 60 データベースの状況をリアルタイムで把握する
  • 61 簡単にOSリソース情報を取得する方法
  • 62 長時間のSQL実行をタイムアウトさせる
  • 63 データベースのOSリソース使用を制御する
  • 64 データベースのOSリソース使用の制御内容を確認する
  • 65 データベースに接続できるクライアントを制限する
  • 66 アプリケーションサーバーとデータベースサーバー間で発生した無効接続を検知する
  • COLUMN 無効接続を検知する新機能
  • 67 簡単にインデックスの効果を検証する
  • 68 統計情報を操作して本番機の実行計画を再現する
  • 69 セグメントの断片化解消効果を見積もる
  • COLUMN セグメントの断片化の仕組み
  • 70 AUTOTRACE機能で簡単にSQLの実行計画を確認する
  • 71 ボトルネックを調べるためSQLトレースを取得する
  • COLUMN SQLトレースのファイル名に任意の文字列を埋め込む
  • COLUMN 現在のセッションIDを調べる
  • 72 外部表を使ってcsvファイルをSQLで扱う
  • 73 隠し初期化パラメータを確認する
  • 74 バッチ処理の進捗状況をログ出力する
  • 75 調べたい内容が書かれたマニュアルを効率的に探す方法

第5章 システムテストのTips

  • 76 システムテストを自動化するときの注意点
  • 77 DBサーバを中心としたシステムテストをする
  • COLUMN インストール時にRATオプションを選択し忘れた!
  • 78 SQL単位のパフォーマンステストを自動化する
  • 79 SQLチューニングセットを作成する
  • 80 SQLチューニングセットをテスト環境に移行する
  • 81 SQLパフォーマンスを比較する
  • 82 SQLチューニングアドバイザと連携する
  • COLUMN SQLプロファイル
  • 83 SPAを上手に使うためのテクニック
  • 84 DB Replayで本番環境の負荷を再現する
  • 85 ワークロードをキャプチャする
  • 86 DB Replayに必要な前処理をする
  • 87 ワークロードをリプレイする
  • 88 本番とリプレイのパフォーマンスを比較する
  • 89 DB Replayの負荷を調節する
  • 90 DB Replayを上手に使うためのテクニック

第6章 データマイニングのTips

  • 91 Oracle Rの特徴とデータ分析の目的を把握する
  • COLUMN Rとは?
  • 92 データベースにRからアクセスして統計解析する
  • COLUMN アソシエーション分析とは?
  • 93 データベースからRへアクセスする
  • COLUMN Rパッケージについて
  • 94 Rから表計算ソフトにアクセスする
  • COLUMN クラスター分析とは?
  • 95 Rのデバッグやボトルネックを発見するテクニック
  • COLUMN OSのstraceコマンドも強力なツール
  • 96 バイトコードコンパイルでRの実行を高速化する
  • COLUMN オブジェクトの入出力はバイナリ形式で高速化
  • 97 Rのメモリー使用量を制限する
  • 98 ヒートマップを利用して,発生頻度を直感的に把握する
  • COLUMN パッケージのインストール方法
  • 99 3次元グラフを利用して類似度を直感的に把握する
  • COLUMN 過去の問い合わせ内容をデータベースに格納するサンプルスクリプト
  • 100 ワードクラウドで膨大なデータを視覚化する
  • COLUMN Twitterのアプリケーションを作成するには?

著者プロフィール

鈴木健吾(すずきけんご)

シニアプリンシパルコンサルタント
2000 年に日本オラクルに転職してから15 年。最初に配属されたカスタマーサポートでトラブルシューティングに明け暮れ,米国フロリダ州のサポートセンターでは日本の深夜時間帯の緊急トラブルに対応。その後オラクルユニバーシティにて,インストラクターとしてRAC やチューニングなどデータベース関連の技術研修を担当しつつ,ORACLE MASTER Platinum 特訓コースを開発し,ORACLE MASTER Platinum 技術者育成を担当。
現在はコンサルタントとして,お客様のビジネスの成功に貢献できるようプロジェクトの現場を駆け回り,忙しくも興味深い日々を過ごす。走ることが好きで,もっと走る時間を確保できないか頭を悩ませている。今年は富士登山競争で制限時間内完走を目指す。
日本オラクル株式会社テクノロジーコンサルティング統括本部に所属。


玉置雄大(たまおきたけひろ)

スタッフコンサルタント
前職はSIer,コンサルティングファームでOracle 製品を活用した基幹系システムに携わる。その後,世界No1のOracle製品を通じてもっと大きな価値を産み出したい思いから日本オラクルへ入社する。主にExadata,Oracle Database,GridInfrastructure,Enterprise Manager のコンサルティングを担当。
DBA でない技術者も,Oracle Database を知ることでもっと仕事の幅が広がるはず。自身の現場経験,反省を踏まえて,OracleDatabaseに関わるすべての人に役立つナレッジを伝えたいとの思いから執筆した。趣味はポーカー海外遠征で,目標は世界でタイトルを取ること。
日本オラクル株式会社テクノロジーコンサルティング統括本部に所属。


塩原浩太(しおばらこうた)

シニアコンサルタント
オラクル製品関連の技術者としてキャリアをスタートさせ,金融機関の社内SE,独立系Sier の技術者とオラクルデータベース畑を歩む。オラクル製品のユーザー会(JPOUG) で出会った小田圭二さんの『もっとデータベースのコアを知りたい?』という言葉に誘われ日本オラクル入社。性能分析や移行,DB運用支援PJを担当しつつ,緊急のトラブル対応などにもしばしば出動。お客様のお力になるべく日夜奮闘中。
本書では困ったり悩んだりした時に,読者が実際に手を動かして調査や検証を実施するためのTips をお伝えしたくて執筆した。
座右の銘は「格物致知」。趣味はマラソン。今年はトライアスロンも始める予定。最近の興味はDB 統合とクラウド。
日本オラクル株式会社テクノロジーコンサルティング統括本部に所属。


小林修(こばやしおさむ)

シニアプリンシパルコンサルタント
Oracleを触って20年,コンサルタントとして,様々な大規模ミッションクリティカルの案件に携わる。前職では,インサイトテクノロジーで,Oracleに関する様々な検証をして,Oracle のアーキテクチャーを体で理解し,『おら!オラ!Oracle - どっぷり検証生活』のメールマガジンの創設メンバ(ペンネーム ちゃむ)の一人として執筆。また,『ロールバックセグメントの歌』や『Data Guardの歌』など歌詞を作詞。最近では,Exadata/GoldenGate 案件にも関わり,日々,製品知識/ コンサル力/ 現場力を高め,お客様の役に立ちたいと思っている。
趣味は,バレーボール。四十肩に悩ませながらも,いつか昔のようにスパイクが打てるのではないかと勘違いしながら励んでいる。
日本オラクル株式会社テクノロジーコンサルティング統括本部に所属。


大森慎司(おおもりしんじ)

プリンシパルコンサルタント
前職ではSlerでアプリケーションエンジニアとして要件定義〜導入まで経験した後に,OracleDBのDBAやWebLogicの設計・構築などのインフラ経験を積み,日本オラクルに入社。主にDatabase 関連を中心に,大規模ミッションクリティカルシステムの設計・構築・運用に関するコンサルティングに従事。日ごろ思うことは,「オラクルコンサルタントはOracle 製品の伝道師。良い製品・機能をコンサル視点でお客様に伝えていきたい。」
Oracle Technology Network(OTN)の技術記事として『シンジ&アヤノの実践データベース性能テストの極意:Oracle Real Application Testingを使ってみよう』も執筆。プライベートでは真のイクメンを目指し奮闘中。執筆に関しては家族の協力に感謝。
日本オラクル株式会社テクノロジーコンサルティング統括本部に所属。


内村友亮(うちむらともあき)

マネージングプリンシパルコンサルタント
SIerのインフラ部隊で,多くのトラブルシュートによってマニアックな経験を積み,2007年日本オラクル入社。DBアーキテクトとして,大規模ミッションクリティカルシステムのマイグレーションやアップグレードなどを手掛ける。「常に存在意義のあるアーキテクチャを突き詰めろ」という信条を持って,「キャリアは偶然8割で決まるんだよなぁ」と思いつつ,インフラ要素(ミドルウェア,OS,ストレージ,ネットワーク)の高い技術を持っている人当たりの良い人でいようと日々の活動に勤しんでいる。
拙著『即戦力のOracle管理術 仕組みからわかる効率的管理のノウハウ』に携わったことが本書企画のきっかけになった。
趣味は愛犬(チワワ:虎太郎)と遊ぶこと。
日本オラクル株式会社テクノロジーコンサルティング統括本部に所属。