ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • ヘルプ
  • Sign Out
ArcGIS Desktop

ArcGIS Online

組織のマッピング プラットフォーム

ArcGIS Desktop

完全なプロ仕様の GIS

ArcGIS Enterprise

エンタープライズ GIS

ArcGIS Developers

位置情報利用アプリの開発ツール

ArcGIS Solutions

各種業界向けの無料のテンプレート マップおよびテンプレート アプリケーション

ArcGIS Marketplace

組織で使えるアプリとデータを取得

  • ドキュメント
  • サポート
Esri
  • サイン イン
user
  • マイ プロフィール
  • サイン アウト

ArcMap

  • ホーム
  • はじめに
  • マップ
  • 解析
  • データ管理
  • ツール
  • エクステンション

PostgreSQL でのメモリのチューニング

  • postgresql.conf での設定
  • サードパーティ製 SQL 空間クエリのパフォーマンスの改善

postgresql.conf での設定

PostgreSQL データベースへの大量のデータの読み込みを促進するため、postgresql.conf ファイルで shared_buffers と max_locks_per_transaction の値を大きくしなければならないことがあります。

shared_buffers

shared_buffers パラメーターは、共有メモリ バッファーに使用されるメモリの量を指定します。PostgreSQL ドキュメントでは、たいていの場合、パフォーマンス上の理由から、128KB または 16KB に max_connections の設定値をかけた最小値より大きい値を設定する必要があると説明されています。運用環境のインストールでは、shared_buffers を数十 MB に設定することが推奨されます。

ほとんどの場合、大量のデータを読み込むときは、shared_buffers をデフォルト値の 32MB よりも大きく設定する必要があります。postgresql.conf ファイルでこのパラメーターを変更した場合は、データベース クラスターを再起動する必要があります。

max_locks_per_transaction

max_locks_per_transaction 値は、同時にロック可能なデータベース オブジェクトの数を指定します。ほとんどの場合はデフォルトの 64 で十分ですが、 大量 (たとえば数千単位) のデータセットを一度に読み込む場合は、トランザクションの同時オブジェクト ロック数が 64 を超えることもあります。

同時ロックとデータセット数は 1 対 1 の関係ではありません。たとえば、3000 のデータセットを読み込む場合に、max_locks_per_transaction を 3000 に増やす必要はありません。一括で読み込む前に、まず max_locks_per_transaction プロパティのコメントを解除し、値を 100 に設定してみてください。

max_locks_per_transaction パラメーター値を変更した場合は、サーバーを再起動する必要があります。

どちらのパラメーターの値を大きくした場合も、オペレーティング システムで利用可能な共有メモリよりもさらに多くデータベースで必要になることがあります。オペレーティング システムの共有メモリ設定を大きくする方法については、PostgreSQL のドキュメントの『カーネル リソースの管理』をご参照ください。

cursor_tuple_fraction

cursor_tuple_fraction の値は、PostgreSQL プランナーがクエリで返される行の割合を設定するために使用します。デフォルトでは、cursor_tuple_fraction は postgresql.conf ファイルに 0.1 が設定されます。これは、結果セット内の行 (またはフィーチャ) の 10 パーセントがすぐに返され、残りは返されるのにより時間がかかることを意味します。

ArcGIS 以外のアプリケーションに接続するときに PostgreSQL プランナが表示する結果セットの割合を変更する場合は、postgresql.conf ファイルの cursor_tuple_fraction プロパティの値を変更できます。

ArcGIS 10.2 以降のバージョンを使用してデータを検索する場合は、1.0 という設定が常に使用されます。つまり、100 パーセントの結果セットが返されない限り、データが表示されません。ArcGIS を使用してデータベースにアクセスする場合は、postgresql.conf ファイルの cursor_tuple_fraction の値を変更しても適用されません。ArcGIS が使用する値を変更するには、セッションまたはシステムの cursor_tuple_fraction 環境変数を設定する必要があります。

サードパーティ製 SQL 空間クエリのパフォーマンスの改善

ビジネス テーブルの ST_Geometry 空間列を返す、ArcGIS の外部にある SQL クエリを実行する場合は、システム環境変数を ST_GEOMETRY_OUTPUT_FORMAT に設定して、拡張 WKT (Well-Known Text) 表現ではなく ST_Geometry タイプの出力にすると、クエリのパフォーマンスが向上します。

デフォルトでは、ST_GEOMETRY_OUTPUT_FORMAT ST_GEOMETRY に設定されているため、16 進数バイナリの表現が返されます。これは、使用可能なジオデータベースのバックアップを作成するために必要な設定です。SQL クエリのパフォーマンスの向上が望ましい場合に、この変数を TYPE に変更できます。多数の空間 SQL クエリを実行するためなどにこの変数を設定した場合は、クエリが完了したら必ずこの設定を削除し、PostgreSQL データベース クラスターを再起動してください。

この変数は、PostgreSQL を実行しているコンピューター上で設定する必要があります。

Linux OS の場合は、SQL クエリを発行するシェルについてこの変数を設定します。bash シェルの場合の構文は次のとおりです。

ST_GEOMETRY_OUTPUT_FORMAT=TYPE

csh シェルの場合の構文は次のとおりです。

setenv ST_GEOMETRY_OUTPUT_FORMAT TYPE

Windows の場合、システムのプロパティでシステム環境変数を設定します。

変数名: ST_GEOMETRY_OUTPUT_FORMAT

変数値: TYPE

変数を設定した場合は、PostgreSQL データベース クラスターを再起動する必要があります。

ArcGIS Desktop

  • ホーム
  • ドキュメント
  • サポート

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Esri について

  • 会社概要
  • 採用情報
  • Esri ブログ
  • ユーザ カンファレンス
  • デベロッパ サミット
Esri
ご意見・ご感想をお寄せください。
Copyright © 2021 Esri. | プライバシー | リーガル