- 会員限定
- 2015/02/24 掲載
NTTデータがPostgreSQLを極限まで使い切ったその先に見たものとは?(後編)
NTTデータオープンソースDAY2015
本記事は「NTTデータがPostgreSQLを極限まで使い切ったその先に見たものとは?(前編)」の続きです。
実行計画をチェックするためにPostgreSQLを騙す。
3つ目は実行計画のチェックです。PostgreSQLのSQL文はコストベースで実行されますので、統計情報を見て、テーブルをスキャンする方法、結合する方法などを選択するのですが、その選択が実行性能にとって重要です。そこで実行計画をチェックしました。ただし、本番環境でしかもサービス開始後のリアルな計画を開発環境で再現してチェックしなければ意味がありません。
本来であれば本番環境と似たサンプルデータを用意して実行計画を作らせたかったのですが、なかなかデータを用意できなかったので、統計情報を操作してPostgreSQLをだます形でそれを実現しました。
ただし統計情報はテーブルの中身によって更新されるため、一回騙す仕組みだけでなく騙し続ける仕組みも必要でした。そこで統計情報カスタマイズ機能を作りました。
さらに、騙し続ける仕組みとして統計情報固定化機能も作りました。本来の統計情報を使わずに、つねに騙す方へ固定化できます。
これで9割くらいはSQL文の問題が解決できるようになりました。しかしまだ最小限で最大限の効果が求められました。そこで、HINT句を使ってSQLチューニングをしました。
そして5つ目の最後の手段としてSQL文の書き換えも行いました。
この5つの関門を設定したことで、大量のSQL文の性能を守ることができました。
【次ページ】 >オープンソースの良さでトラブルを解決
関連コンテンツ
関連コンテンツ
PR
PR
PR
今すぐビジネス+IT会員にご登録ください。
すべて無料!今日から使える、仕事に役立つ情報満載!
-
ここでしか見られない
2万本超のオリジナル記事・動画・資料が見放題!
-
完全無料
登録料・月額料なし、完全無料で使い放題!
-
トレンドを聞いて学ぶ
年間1000本超の厳選セミナーに参加し放題!
-
興味関心のみ厳選
トピック(タグ)をフォローして自動収集!
投稿したコメントを
削除しますか?
あなたの投稿コメント編集
通報
報告が完了しました
必要な会員情報が不足しています。
必要な会員情報をすべてご登録いただくまでは、以下のサービスがご利用いただけません。
-
記事閲覧数の制限なし
-
[お気に入り]ボタンでの記事取り置き
-
タグフォロー
-
おすすめコンテンツの表示
詳細情報を入力して
会員限定機能を使いこなしましょう!
「」さんのブロックを解除しますか?
ブロックを解除するとお互いにフォローすることができるようになります。
ブロック
さんはあなたをフォローしたりあなたのコメントにいいねできなくなります。また、さんからの通知は表示されなくなります。
さんをブロックしますか?
ブロック
ブロックが完了しました
ブロック解除
ブロック解除が完了しました