タグ付けされた質問 「postgresql」

PostgreSQLのすべてのバージョン。そのコンテキストが重要な場合は、postgresql-11などのバージョン固有のタグを追加します。

2
PgAdmin III-パスワードが空のときにデータベースに接続する方法
この質問は、データベース管理者のStack Exchangeで回答できるため、Server Faultから移行されました。 8年前に移行され ました。 PCにPostgreSQL 9.1をインストールしました(Win 7)。とで正常に接続する小さなJavaアプリケーションがlogin=saありpassword=""ます。接続が機能します。 ただし、PgAdmin III自体からは拒否されます。私は得る: Error connecting to the server: fe_sendauth: no password supplied 空のパスワードでPgAdmin IIIからデータベースに接続するにはどうすればよいですか? 編集 これは単なるテストであり、量産コードではありません。

3
左外部結合にデフォルトを提供できますか?
テーブルa(列a1)およびb(列b1およびb2)があり、左外部結合を実行するとします。 SELECT * FROM a LEFT OUTER JOIN b ON a.a1 = b.b1 b1とb2は、a1の値に一致するb1の値がない場合、NULLになります。 NULLの代わりにb2のデフォルト値を提供できますか?私はのでCOALESCEが、ここでは動作しないことに注意していないがどこB2の潜在的なNULLを上書きするデフォルト値をしたいです B1マッチングa1の値が。 つまり、aとbは CREATE TABLE a (a1) AS VALUES (1), (2), (3) ; CREATE TABLE b (b1,b2) AS VALUES (1, 10), (3, null) ; a1 b1 | b2 --- -------- 1 1 | 10 2 3 …
21 postgresql  join 

5
クエリ、テーブル、またはビューの出力列名とデータ型を返すクエリ
クエリ、テーブル、またはビューのフィールド名とフィールドタイプを返すPostgreSQLクエリまたはコマンドはありますか? たとえば、次のような単純なSELECTクエリに適用されるソリューションは、次のようなSELECT * from personリストを返します。 Column Name | Column Type =========================== First Name | character Last Name | character Age | integer Date of Birth | date 私はinformation_schema以下の回答に記載されているビューを調べましたが、テーブルを非常によくカバーしているようで、ビューもカバーしていると思われますが、まだチェックしていません。 最後は、任意の、しかし有効なSELECTクエリです。たとえば、データベースに対するJOINS、 UNIONSなどが含まれます。組み込みプロシージャ、または有効なQUERYに対してまったく同じを返すことができる他のストアドプロシージャまたはスクリプトはありますか? データを作成し、フォームにクエリを実行するプログラムを開発しています。この情報は、データの検証と返されたデータに対する関数の実行に必要です。

6
json_agg内の列を選択します
次のようなクエリがあります: SELECT a.id, a.name, json_agg(b.*) as "item" FROM a JOIN b ON b.item_id = a.id GROUP BY a.id, a.name; JSONオブジェクトに含まれbないように列を選択するにはどうすればよいb.item_idですか? について読みましたがROW、次のようなJSONオブジェクトを返します。 {"f1": "Foo", "f2": "Bar"} 適切な列キーに一致するように取得したら、JSONオブジェクトを再マップする必要があります。それを避け、元の列名を保持したいと思います。

3
Postgresのマテリアライズドビューの定義を照会する
Postgresでマテリアライズドビューの定義をクエリする方法を疑問に思っています。参考までに、私がやりたいことは、通常のビューでできることと非常に似ています。 SELECT * FROM information_schema.views WHERE table_name = 'some_view'; 次の列が表示されます。 table_catalog table_schema table_name view_definition check_option is_updatable is_insertable_into is_trigger_updatable is_trigger_deletable is_trigger_insertable_into マテリアライズドビューでこれは可能ですか? これまでの私の調査から、マテリアライズドビューはinformation_schemaから意図的に除外されているようです。 information_schemaは、SQL標準に存在するオブジェクトのみを表示できます。 (http://www.postgresql.org/message-id/3794.1412980686@sss.pgh.pa.us) それらはinformation_schemaから完全に除外されているように見えるので、私はこれについてどうするかわかりませんが、私がやりたいことは2つあります: 特定のマテリアライズドビューが存在するかどうかを照会します。(これまでのところ、これを行うことがわかった唯一の方法は、同じ名前のマットビューを作成し、それが爆発するかどうかを確認することです。) 次に、マテリアライズドビューの定義を照会します(view_definition上の列と同様information_schema.views)。

2
ビットマップインデックススキャンを使用するクエリプランの「Recheck Cond:」行
これは、コメントから前の質問へのスピンオフです。 Postgres 9.4.4クエリには永遠に時間がかかります PostgreSQL 9.4を使用すると、Recheck Cond:によるクエリプラン出力でビットマップインデックススキャンの後に常に行があるように見えますEXPLAIN。 EXPLAIN参照された質問の出力のように: -> Bitmap Heap Scan on table_three (cost=2446.92..19686.74 rows=8159 width=7) Recheck Cond: (("timestamp" > (now() - '30 days'::interval)) AND (client_id > 0)) -> BitmapAnd (cost=2446.92..2446.92 rows=8159 width=0) -> Bitmap Index Scan on table_one_timestamp_idx (cost=0.00..1040.00 rows=79941 width=0) Index Cond: ("timestamp" > (now() - '30 days'::interval)) …

1
ローリングサム/カウント/日付間隔の平均
18か月にわたる1,000のエンティティにまたがるトランザクションのデータベースで、クエリを実行して、可能な30日間ごとにentity_idトランザクション量のSUMとその30日間のトランザクションのCOUNTでグループ化します。クエリを実行できる方法でデータを返します。多くのテストの後、このコードは私が望むものの多くを達成します: SELECT id, trans_ref_no, amount, trans_date, entity_id, SUM(amount) OVER(PARTITION BY entity_id, date_trunc('month',trans_date) ORDER BY entity_id, trans_date ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS trans_total, COUNT(id) OVER(PARTITION BY entity_id, date_trunc('month',trans_date) ORDER BY entity_id, trans_date ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS trans_count FROM transactiondb; そして、次のような構造の大きなクエリで使用します。 SELECT * FROM ( …

4
個別の範囲を可能な限り最大の連続する範囲に結合する
複数の日付範囲(最大負荷は約500、ほとんどの場合は10)を、最大の連続する日付範囲に重複する場合も重複しない場合もあります。例えば: データ: CREATE TABLE test ( id SERIAL PRIMARY KEY NOT NULL, range DATERANGE ); INSERT INTO test (range) VALUES (DATERANGE('2015-01-01', '2015-01-05')), (DATERANGE('2015-01-01', '2015-01-03')), (DATERANGE('2015-01-03', '2015-01-06')), (DATERANGE('2015-01-07', '2015-01-09')), (DATERANGE('2015-01-08', '2015-01-09')), (DATERANGE('2015-01-12', NULL)), (DATERANGE('2015-01-10', '2015-01-12')), (DATERANGE('2015-01-10', '2015-01-12')); テーブルは次のようになります。 id | range ----+------------------------- 1 | [2015-01-01,2015-01-05) 2 | [2015-01-01,2015-01-03) 3 | [2015-01-03,2015-01-06) …

1
同じスキーマ/クエリに対するMySQLとPostgreSQLのパフォーマンスの違い[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 6年前に閉鎖されました。 私は初心者DBAであり、Microsoft SQL Serverの経験がありますが、FLOSSにジャンプしたいです。 私は会社を始めており、Postgresバックエンドでアプリ(PHP)を開発し、MySQLと比較するテストもいくつか行いました。MySQLはPostgreSQLの2倍の速度であることがわかります。 具体的なパフォーマンステストを行いました。 同等の列データ型を持つ表の同じ列。 同じ行数。 両方で同じインデックス(主キーを含む)。 CPU負荷はアイドル状態であり、Postgresマシンは大幅に改善されています。 そして、同じクエリ(明らかに)。 何が間違っていますか? PS:データベースエンジンのパフォーマンスチューニングに関する「ハウツー」をたくさん読みました。 PS(2):MySQLデータベースでInnoDB(テーブルごとに1ファイル)を使用しています。 こんにちはマット! 3つの一般的な選択(および最も難しい)クエリを実行しました。 ディスクについての質問は、確かに同じではありません。Postgresでは、SSD(ほぼ3倍の速度)です。 MySQLキャッシュデータ: +------------------------------+----------------------+ | Variable_name | Value | +------------------------------+----------------------+ | binlog_cache_size | 32768 | | have_query_cache | YES | | key_cache_age_threshold | 300 | | key_cache_block_size | 1024 | | key_cache_division_limit | …

6
行の2つ以上の列が特定の値を超えている場所をカウントする[バスケットボール、ダブルダブル、トリプルダブル]
統計情報をデータベースファイルとして出力できるバスケットボールゲームをプレイしているので、ゲームに実装されていない統計情報を計算できます。これまでのところ、必要な統計を計算するのに何の問題もありませんでしたが、今では問題に直面しています:プレーヤーがシーズン中に作ったダブルダブルまたはトリプルダブルの数をゲーム統計からカウントすることです。 double doubleとtriple doubleの定義は次のとおりです。 ダブルダブル: ダブルダブルとは、プレイヤーがゲーム内で5つの統計カテゴリー(ポイント、リバウンド、アシスト、スチール、ブロックショット)のうち2つに合計2桁の数字を累積するパフォーマンスとして定義されます。 トリプルダブル: トリプルダブルとは、プレイヤーがゲーム内で5つの統計カテゴリー(ポイント、リバウンド、アシスト、スチール、ブロックショット)のうち3つに合計2桁の数字を累積するパフォーマンスとして定義されます。 Quadruple-double(明確にするために追加) 4倍ダブルは、プレーヤーがゲームで5つの統計カテゴリ(ポイント、リバウンド、アシスト、スチール、ブロックショット)の4つに合計2桁の数字を蓄積するパフォーマンスとして定義されます。 「PlayerGameStats」テーブルには、プレーヤーがプレイする各ゲームの統計が格納され、次のようになります。 CREATE TABLE PlayerGameStats AS SELECT * FROM ( VALUES ( 1, 1, 1, 'Nuggets', 'Cavaliers', 6, 8, 2, 2, 0 ), ( 2, 1, 2, 'Nuggets', 'Clippers', 15, 7, 0, 1, 3 ), ( 3, 1, 6, 'Nuggets', 'Trailblazers', …

5
PostgreSQLに最適なクラウドプラットフォーム[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、データベース管理者のStack Exchangeのトピックになるようにします。 6年前に閉鎖されました。 現在、プロジェクトでは、PostgreSQLデータベース専用のサーバーを使用しています。 理論的には、一部のクラウドプラットフォームで何でも実行できます。ただし、PostgreSQLの構成はハードウェア構成に厳密に関連しています。私たちが探しているのは、ネイティブPostgreSQLをサポートするクラウドソリューションです。 目的の機能のリストは次のとおりです。 選択したリソースに応じた自動データベース構成調整 すぐに使用可能な複製セットアップ それでは、そのようなサービスのオプションと最良の選択は何ですか?
20 postgresql  cloud 

3
更新(ソフトウェアおよびハードウェア)からの重いI / Oのためにデータベースを最適化する方法
状況 は非常に頻繁に更新されるpostgresql 9.2データベースがあります。したがって、システムはI / Oにバインドされており、現在別のアップグレードを検討しています。改善を開始する場所についての指示が必要です。 過去3か月間の状況の様子を次の図に示します。 ご覧のとおり、更新操作はほとんどのディスク使用率を考慮しています。より詳細な3時間のウィンドウで状況がどのように見えるかの別の写真を次に示します。 ご覧のとおり、ピーク書き込み速度は約20MB / sです ソフトウェア サーバーは、ubuntu 12.04およびpostgresql 9.2を実行しています。更新のタイプは、通常、IDで識別される個々の行で小規模に更新されます。例UPDATE cars SET price=some_price, updated_at = some_time_stamp WHERE id = some_id。可能な限りインデックスを削除して最適化し、サーバー構成(Linuxカーネルとpostgres confの両方)もかなり最適化されています。 ハードウェア ハードウェアは、32GB ECC ram、RAID 10アレイの4x 600GB 15.000 rpm SASディスクを備えた専用サーバーで、BBUとIntel Xeon E3-1245 Quadcoreプロセッサーを搭載したLSI RAIDコントローラーによって制御されます。 ご質問 グラフに表示されるパフォーマンスは、この口径のシステム(読み取り/書き込み)にとって妥当ですか? したがって、ハードウェアのアップグレードに重点を置くか、ソフトウェアの詳細な調査(カーネルの調整、confs、クエリなど)を行う必要がありますか? ハードウェアのアップグレードを行う場合、ディスクの数はパフォーマンスにとって重要ですか? - - - - - - - - …


3
出力ストリームに通知を取得する方法は?
関数にデバッグメッセージがあります。それらのメッセージは RAISE NOTICE 'Value of id : %', id; ログファイルを設定します \o messages.txt それから私は私がする必要があることをします \i process.sql そして実行が終了したとき\o。 問題は、messages.txtに通知によって生成されたメッセージがないことです。メッセージは画面に表示されますが、messages.txtに書き込みたい どうすればそれができますか? 私は使用しようとしましたがRAISE LOG...、メッセージはログファイルに書き込まれます...それは私が望むものではありません。 回避策があります plsql -f /path/to/process.sql > messages.txt 2>&1 しかし、\ oで指定されたファイルにメッセージがあるplsqlクライアントで\ iと\ oを使用する方法を知りたい cygwin上の私のクライアントはpsql(PostgreSQL)8.2.11で、サーバーバージョンは9.0.7です
20 postgresql 


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.