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

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


6
PostgreSQLデータベースを管理するための優れた無料のツールはありますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、データベース管理者のStack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 以前、phpmyadminを使用してMySQLデータベースを管理していましたが、PostgreSQLデータベースを管理したいと考えています。PostgreSQLデータベースはサーバー上にありますが、Webサーバー上にはないため、PHPは使用しません。 PostgreSQLデータベースを管理するための優れた無料のツールはありますか? 私はpgAdmin IIIを試しましたが、以前に使用したphpmyadminと比較すると、直感的なアプリケーションとはほど遠いものでした。PostgreSQL DBAは通常何を使用していますか?彼らはpgAdmin IIIのようなグラフィカルツールを使用していますか、それともコマンドラインツールですか?

2
接続が失われた/壊れた場合、Postgresの長時間実行クエリは中止されますか?
Postgresへの接続を開いて長時間実行クエリを発行してから接続を切断すると(たとえば、接続を開いたクライアントプロセスを強制終了します)、長時間実行クエリは引き続き実行されますか、それとも自動的に中止されますか?これは構成可能ですか? (私はPostgresql 9.2.9を使用しています)

3
Postgresqlデータを別のドライブに移動する
クラウド環境としてAWSを使用しています。ルートインスタンスボリュームと同じドライブにPostgreSQLをインストールしました。インスタンスに2番目のドライブを接続してマウントしました。次に、すべてのPostgreSQLデータを別のドライブに移動します。私はまだ開発モードにいるので、この時点で転送が容易になる場合は古いデータを削除できます。これを行う最良の方法は何ですか? PostgreSQLのテーブルスペースは私が見るべきものですか?

2
式の集約LIKEクエリを高速化するためにインデックスを作成する方法は?
タイトルに間違った質問をしている可能性があります。事実は次のとおりです。 カスタマーサービスの担当者は、Djangoベースのサイトの管理インターフェイスでカスタマールックアップを実行すると、応答時間が遅いことに不満を抱いていました。 Postgres 8.4.6を使用しています。遅いクエリのログを記録し始め、この犯人を発見しました: SELECT COUNT(*) FROM "auth_user" WHERE UPPER("auth_user"."email"::text) LIKE UPPER(E'%deyk%') このクエリは、実行に32秒以上かかります。EXPLAINが提供するクエリプランは次のとおりです。 QUERY PLAN Aggregate (cost=205171.71..205171.72 rows=1 width=0) -> Seq Scan on auth_user (cost=0.00..205166.46 rows=2096 width=0) Filter: (upper((email)::text) ~~ '%DEYK%'::text) これは、Django Adminアプリケーションによって生成されたDjango QuerySetからDjango ORMによって生成されたクエリなので、クエリ自体を制御することはできません。インデックスは論理的なソリューションのようです。これを高速化するためにインデックスを作成しようとしましたが、違いはありません。 CREATE INDEX auth_user_email_upper ON auth_user USING btree (upper(email::text)) 何が間違っていますか?このクエリを高速化するにはどうすればよいですか?

1
Postgresqlを変更する文字のサイズ制限
postgresqlのさまざまなデータタイプのサイズ制限は何ですか?私はどこかで、1から10485760の間character varying(n)でvarchar(n) nなければならないことを見ました。それは本当ですか? 何のために有効なサイズですcharacter(n)、char(n)とtext?

1
INSERTのみを受け取るテーブルでVACUUMを実行する価値はありますか?
この質問は、データベース管理者のStack Exchangeで回答できるため、Stack Overflowから移行されました。 3年前に移行され ました。 2015年のre:Inventのトークで、AWSは更新または削除の後だけでなく、挿入後にもバキュームを実行する必要があると述べました。講演の関連部分は次のとおりです。 http://www.youtube.com/watch?v=tZXp19q8RFo&t=16m2s ブロックが挿入のみを受信した場合でも、ブロックに対して実行する必要があるクリーンアップがあり、このクリーンアップは、ブロックが最初に選択されたとき(読み取りを遅くする)またはバキューム中に実行できます。これは本当ですか?もしそうなら、正確にどのようなクリーンアップを行う必要がありますか?

4
テーブルに存在しないリストからIDを見つける
次のスキーマとデータがあるとします。 create table images( id int not null ); insert into images values(1), (2), (3), (4), (6), (8); 次のようなクエリを実行します。 select id from images where id not exists in(4, 5, 6); しかし、これは機能しません。上記のケース5は、テーブルレコードに存在しないため、返されるはずです。

2
タイムスタンプをPostgreSQLに最適に保存する方法は?
私はPostgreSQL DBの設計に取り組んでおり、タイムスタンプをどのように保存するのが最善か疑問に思っています。 仮定 異なるタイムゾーンのユーザーは、すべてのCRUD機能にデータベースを使用します。 私は2つのオプションを見ました: timestamp NOT NULL DEFAULT (now() AT TIME ZONE 'UTC') bigint NOT NULL DEFAULT 以下のためにtimestamp私は、INSERTモーメントの正確な(UTC)のタイムスタンプを表すことになり、文字列を送信します。 以下のためにbigint私はまったく同じことを格納し、その数形式のでしょう。(タイムゾーンの問題はミリスがサーバーに引き渡される前に処理されるため、UTCでは常にミリスです。) を格納するbigintことの主な利点の1つは、正しい形式のタイムスタンプの受け渡しが単純な数値よりも複雑であるため(Unix Epocからのミリ秒)、格納および取得が容易になることです。 私の質問は、どちらが最も柔軟な設計を可能にし、各アプローチの落とし穴になる可能性があるものです。

2
PostgreSQLがパフォーマンスSSDを最大化
テーブルごとに1億以上のエントリを持つ多くのテーブルを持つ巨大なPostgreSQL 9.3データベースを作成します。このデータベースは、基本的に読み取り専用(必要なテーブルをすべて埋めて、DBでインデックスを作成しない場合)、シングルユーザーアクセス(ローカルホストから複数のクエリを実行およびベンチマーク)されるため、DBが使用されます研究目的のみ。クエリは常に整数DBフィールドでJOINを使用します。 この目的のために、おそらくSSD(256-512GB)を購入するでしょう。DBにSSDを使用したことがないので、心配する必要はありますか?DB全体をSSDに置くことも、インデックスだけを置くこともできますか?SSD用にPostgreSQLをチューニングするために必要な特別なアドバイスやチュートリアルはありますか?i7と32GbのRAMを備えた優れたワークステーションがあることに注意してください。

2
ダンプの復元中にすべての制約とテーブルチェックを無効にします
私は私のPostgreSQLデータベースのダンプを取得しました: pg_dump -U user-name -d db-name -f dumpfile 次に、次のコマンドを使用して別のデータベースに復元します。 psql X -U postgres -d db-name-b -f dumpfile 私の問題は、データベースに参照制約、チェック、トリガーが含まれていることと、これらのチェック(特にチェック)の一部が復元中に失敗することです。たとえば、テーブルへの行の挿入は、他の無関係なテーブルで条件が成立するかどうかをチェックCHECKするplpgsql関数を呼び出すに関連付けられます。後者のテーブルがpsql前者の前に読み込まれない場合、エラーが発生します。 以下は、一度ダンプするpg_dumpと復元できないデータベースを生成するSSCCEです。 CREATE OR REPLACE FUNCTION fail_if_b_empty () RETURNS BOOLEAN AS $$ SELECT EXISTS (SELECT 1 FROM b) $$ LANGUAGE SQL; CREATE TABLE IF NOT EXISTS a ( i INTEGER NOT NULL ); …


2
クエリが論理的に似ている場合、なぜ計画が異なるのですか?
Seven WeeksのSeven Databasesから3日目の最初の宿題の質問に答えるために、2つの関数を作成しました。 好きな映画のタイトルや俳優の名前を入力できるストアドプロシージャを作成すると、俳優が主演した映画または類似のジャンルの映画に基づいて上位5つの候補が返されます。 私の最初の試みは正しいが、遅い。結果を返すには最大2000msかかります。 CREATE OR REPLACE FUNCTION suggest_movies(IN query text, IN result_limit integer DEFAULT 5) RETURNS TABLE(movie_id integer, title text) AS $BODY$ WITH suggestions AS ( SELECT actors.name AS entity_term, movies.movie_id AS suggestion_id, movies.title AS suggestion_title, 1 AS rank FROM actors INNER JOIN movies_actors ON (actors.actor_id = movies_actors.actor_id) …

3
PostgreSQL:pg_start_backup()を、負荷がかかっている稼働中のdbで実行できますか?
確立された複製が壊れています(ダウンタイム中に「要求されたWALセグメントは既に削除されています」)マスターを簡単に停止することは簡単にできません。 できますか pg_start_backup()、 rsync ${PGDATA}/ マスターからスレーブ、 pg_stop_backup() ...マスターpostgresqlがまだ全負荷下にある間に?(またはにpg_start_backup()つながる テーブルロック、 I / Oブロック、 矛盾、 火災警報、 データベース応答が遅い つまり、pg_start_backup()アプリケーションに影響しますか?

1
PostgreSQLで文字列を倍精度に変換するにはどうすればよいですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、データベース管理者のStack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 PostgreSQLで文字列を倍精度に変換するにはどうすればよいですか? 私は次のようなものを試しました: update points set latitude2 = cast(latitude as double) ; ここで、緯度は文字列で、緯度2はdoubleです。うまく動かせない。
19 postgresql 

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