佐々木一洋(14)0この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。はじめにdexterはPostgreSQL(以下pgと略します)のSQLを解析して必要なインデックスの推定を行なってくれるツールです。今回はこのツールを試してみるために、CentOS上にpgをセットアップして、dexterをインストールしてみようと思います。環境とバージョン今回使用した環境とバージョンは下記の通りです。databases.必要なパッケージのインストールまずはパッケージマネージャで必要なものをインストールします。pgはPostgreSQL公式サイトで配布されているパッケージを使います。postgresql96-contrib-develはdexterが依存するpggemのビルドに、-contribはスロークエリログを有効にするために必要です。ruby-develpgのセットアップpgのデータ保存ディレクトリを初期化します。/var/lib/pgsql/9.6/data/自動起動を有効化して、起動します。postgresql-9.6この後データベースの作成やユーザーの設定などがありますが、詳しい説明はpgの素晴らしい公式日本語ドキュメントに譲ります。dexterはpgのログファイルを監視してスロークエリを検出して解析を行うことができます。pgでスロークエリをログに出力するためには、下記のスロークエリログの有効化を行ってください。スロークエリログの有効化スロークエリの出力のためにはpgの設定ファイルを編集します。クエリをログ出力する実行時間のしきい値をミリ秒単位で指定します。ms設定ファイルを変更したら再起動が必要です。postgresql-9.6dexterをインストールdexterをインストールします。下記の手順はほとんどREADMEと同じですが、いくつか注意点があるので説明します。HypoPGをビルドビルドスクリプトがpgのツールを使うのでパスを通しておく必要があります。PATH=$PATH:/usr/pgsql-9.6/bin/以下はREADMEと同じです。pgdexter使ってみるREADMEにはログを監視する使い方が説明されていますが、とりあえずコマンドラインからクエリを指定するには下記のように--stateオプションを使います。..."ここでdatabase-urlはlibpqのドキュメントに詳細が記述されていますが、ざっくり下記のような文字列です。オプションでクエリを指定する以外にも一定間隔で標準入力からクエリを読みこんで解析を行うモードもあります。この場合は下記のようにログファイルの内容をパイプします。<database-url>詳しいオプション引数なしで実行すると下記のように使用方法が表示されます。help主要なオプションを確認してみましょう。クエリの解析間隔を秒で指定します。オプションなしで起動した場合は--intervalで指定する間隔で標準入力からクエリを読みこんで解析を行います。今回はtpc-hに含まれているクエリを解析してみました。下記のように作成すべきインデックスの候補が表示されています。(o_orderdate)この結果のうちインデックスの推定結果は次の部分です。(o_orderdate)lineitemテーブルのl_orderkeyカラムおよびordersテーブルのo_orderdateカラムにインデックスを作成すべきという結果になっています。ここでは掲載していませんが、pgのログを確認すると、実際にはdexterはexplainを行なってその結果から必要なインデックスを推定しているようです。実際にインデックスの推定を行なってみました。次回はインデックスの妥当性の検証や動作原理について調べてみたいです。143,582札幌でモバイルアプリのバックエンド開発をしています。ジャンル問わず気になった技術ネタについて書いていこうと思っています。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。CAFEの他、NTTデータとセブンイレブンの取り組みや、サインポスト、Zippinなどの各社と流通・小売業との連携を業界マップに作成してみました。濱田孝治70re:Invnetの動画検索でもめちゃくちゃ便利ですが、その他ブログやホワイトペーパーやGitHubも横断検索できるので、是非一度使ってみてください。PolicyのConditionにaws:CalledViaというキーが追加されました。いったキーなのかご説明します。夏目祐樹403こんにちは、CX事業本部の夏目です。MacのタッチバーのタッチIDが非常に便利なのですが、Terminalでsudoを叩かないと行けないときに使えたらなぁと思ったので、情報を共有します。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介256SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健233こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。