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

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

2
データベースを削除した後のディスク容量の解放
私は開発システムで作業しており、開発目的のために使用しているデータベース(「foo」など)に復元しています。よじ登って作業しているので、DROP DATABASE fooを実行しています。しかし、ディスクのすべてのスペースを使い果たしてしまったことにすぐに気付きました。くだらない。 別の論理データベースのVACUUM FULLは、以前に削除したデータベース(foo)のスペースを解放しますか?別の論理データベースからこれを試してみましたが、空き領域が回収されましたが、作成したすべてのCREATE DATABASE / DROP DATABASE呼び出しを説明するのに十分だとは思いません。私が実行した論理データベースをVACUUMしただけかもしれません。 合計データベース初期化を行わずにそのスペースを再利用する方法が必要ですか? 編集 だから私はバックアップからデータベースを再初期化し、これらのステップをほぼ実行した。復元後、ディスク上の1トンの領域を回収しました!これは今のところ機能しますが、ドロップされたデータベースをクリーンアップする方法に関するヘルプはまだ有用です。 編集2 だから私はこの問題に関するいくつかの詳細情報を収集することができました...ここに私が例として考え出したものがあります: Initial partition size: Size Used Avail Use% Mounted on 25G 8.1G 16G 35% /apps1 After creating my new database and populating it: 25G 18G 6.4G 73% /apps1 After Dropping the database using "DROP database mydb" from …

1
PostgreSQLデータベースデータファイルの整合性チェック
PostgreSQLデータベースシステムを実行している場合、データベース全体の整合性が100%であることをどのように知ることができますか?基本的に、破損していないデータファイルとページがすべて100%良好であるかどうかを知るにはどうすればよいですか? Microsoft SQL Serverの世界には、問題があるかどうかを通知するDBCC CHECKDBを実行できるコマンドがあります。コマンドの詳細を知りたい場合は、次のリンクをご覧ください。DBCC CHECKDB(Transact-SQL) 私は妄想的なデータベース整合性を重視している人であり(DBAタイプの役割でデータベースを操作する人なら誰でもそうするべきです)、この種のことは夜によく眠れないようにします。このようなユーティリティは必須です!グーグルでの検索では、このようなツールでいくつかの試みが見つかりましたが、PostgreSQLプロジェクトで公式に承認されたツールでない限り、私はこの重要なものを信用しません。 ここに、私が本当の決定的な答えとは思わないもので、同様の質問をする人々へのいくつかのリンクがあります。そして私の意見では、PostgreSQLはOracleとMicrosoft SQL Serverが持っているように見えるいくつかのツールを用意する必要があることを示しています。 最初のリンクは、このテーマで見つけた最も興味深いものです。おそらくそれを要約する記事へのコメントは、「Postgresはデータベースの破損を特定して修復するのはかなり不自由です。それを検出する唯一の方法は、データベースをダンプするか、データベース内のすべてのテーブルから*を選択することです」 」 PostgreSQLが部分的なページ書き込みとデータ破損から保護する方法 データとインデックスファイルの破損の確認-Dev Shed ヘルプ:テーブルが壊れています! PostgreSQL:破損した主キー、一貫性のないテーブル 9.3にはいくつかの破損チェック機能がある可能性があると思います。必要に応じて、ページファイルのチェックを合計することを希望する可能性があります。そのため、ZFSやPostgresの将来のバージョンでページチェックサミングを使用することを検討している場合、状況は明るいように見えます。 https://commitfest.postgresql.org/action/patch_view?id=759 更新:2012年1月14日-ZFSに基づくファイルシステムを使用すると、データの各ブロックを合計してチェックすることで破損を検出できるようです。私はこれをさらに調べ、これがデータベースデータが静かに破損していないことを知って夜寝るのを可能にする回避策であるかどうかを確認する必要があります。 更新:2012年1月17日-ZFSで破損しているファイルを見つける方法。http://docs.oracle.com/cd/E18752_01/html/819-5461/gbbwl.html#gbcuz 更新:2014年4月14日9.3でデータチェックサムが取得されました。https://wiki.postgresql.org/wiki/What's_new_in_PostgreSQL_9.3

4
NULLはありませんが、「UTF8」をエンコードするための無効なバイトシーケンス:0x00
'mysqldump --compatible = postgresql'の出力をPostgreSQL 8.4.9にインポートしようとして過去8時間を費やし、この特定の問題について少なくとも20の異なるスレッドをここおよび他の場所で既に読んでいますが、実際に使用可能な答え。 MySQL 5.1.52データのダンプ: mysqldump -u root -p --compatible=postgresql --no-create-info --no-create-db --default-character-set=utf8 --skip-lock-tables rt3 > foo 宛先としてのPostgreSQL 8.4.9サーバー 「psql -U rt_user -f foo」を使用してデータをロードすると、レポートが作成されます(これらの多くは、1つの例です)。 psql:foo:29: ERROR: invalid byte sequence for encoding "UTF8": 0x00 HINT: This error can also happen if the byte sequence does not match the encoding …

3
ファイルからPostgreSQLデータベースにXMLを読み込むSQL
XMLファイルを読み込んでPostgreSQLのXML値にするには、どうすればSQLを記述できますか? PostgreSQLには、テキスト文字列をその型に解析する機能を備えたネイティブXMLデータ型がありXMLPARSEます。また、ファイルシステムからデータを読み取る方法もあります。特にCOPY声明。 しかし、ネイティブのPostgreSQL SQLステートメントを記述して、ファイルシステムエントリからコンテンツを読み取り、それを使用してXML値を設定する方法は見当たりません。これどうやってするの?
12 postgresql  xml 


1
PostgreSQL:TRUNCATE後にディスク領域が解放されない
私はTRUNCATEと呼ばれる巨大な(〜120Gb)テーブルを持っていますfiles: TRUNCATE files; VACUUM FULL files; テーブルサイズは0ですが、ディスク領域は解放されていません。失われたディスク容量を回収する方法はありますか? 更新: 12時間後にディスク領域が解放されましたが、何も操作しませんでした。Ubuntu 8.04サーバーを使用しています。


2
Postgresql 8.3:クエリごとのリソース消費を制限する
私が使用しているPostgreSQLの8.3 + のPostGIS 1.3で地理空間データを格納するためのUbuntu 8.04ハーディ。 この特定のバージョンのPostGISには、buffer()非常に複雑なセグメントで計算するときにバグがあり、マシン全体がスタックするまでクエリがますます多くのメモリを消費します。 私はできるPostgreSQLメカニズムを探しています: 特定のクエリで使用されるメモリ消費(およびおそらく他のリソース)を制限します。 実行時間が特定のしきい値を超えるクエリを自動的に停止します。 何か案は?

3
属性の最大数が不明なエンティティを実装する方法は?
私は野球シミュレーションプログラムを設計していますが、boxscoreスキーマの設計で問題に遭遇しました。私が抱えている問題は、各イニングで得点されたランの数を追跡したいということです。実際のプログラムでこれを行う方法は、演奏されるイニングごとに大きくなる動的配列を使用することです。 野球の試合に不慣れな人にとっては、9回のイニングの終わりに試合がまだ結ばれていない限り、試合は通常9イニングの長さです。したがって、野球の試合の長さは不定です。つまり、各イニングの得点に9列しか持たないようにデータベースを設計することはできません(厳密には18(9イニング* 2チーム)。データベースに保存する前にBase64としてエンコードしますが、これが使用するのに適した手法であるかどうかはわかりません。 重要な場合、私が開発しているデータベースはPostgreSQLです。 提案は大歓迎です!ありがとう!

3
PL / pgSQLで複数行のレコードを返す方法
私はRECORDデータ型を使用して複数のレコードを返そうとしていますが、RECORDに追加し、このRECORDに反復するたびに新しい値を追加/追加する方法があります。 つまり、ループが終了すると行のセットになるrecように追加したいrecと思います。これは、関数の最後で単に返すことができます。現在、私はこれをやっています- SELECT temp_table.col1, temp_table.col2, temp_table.col3 INTO rec FROM temp_table WHERE temp_table.col3 = false; 私の完全なコードはここにあります: CREATE OR REPLACE FUNCTION validation() RETURNS RECORD AS $$ DECLARE rec RECORD; temp_row RECORD; BEGIN CREATE TEMPORARY TABLE temp_table (col1 TEXT, col2 INTEGER, col3 BOOLEAN) ON COMMIT DROP; FOR temp_row IN SELECT * FROM staging.validation …

4
この特定の冗長な派生テーブルの順序が保証されない可能性は本当にありますか?
ルーカスエダーとのTwitter会話でこの質問に遭遇しました。 正しい動作は、最も外側のクエリにORDER BY句を適用することですが、ここでは、最も外側のクエリでDISTINCT、GROUP BY、JOINまたはその他のWHERE句を使用していないため、RDBMSは単に内部クエリで並べ替えられた受信データ? SELECT * FROM ( SELECT * FROM table ORDER BY time DESC ) AS t この例をPostgreSQLで実行すると、少なくとも、内部クエリとこの派生テーブルの両方の例の実行プランが同じになり、同じ結果セットが得られます。 したがって、プランナーは最も外側のクエリを冗長にするか、単に内部のテーブルからの結果を通過させるため、単純にそのクエリを破棄すると想定します。 これはそうではないかもしれないと誰もが思いますか?

1
スーパーユーザーなしでPostgresqlを有効にする拡張機能
ユーザーのロールとデータベースを自動的に作成するスクリプトを備えたPostgreSQL 9.5サーバーがあります。これらのデータベース内では、特定の拡張機能(pgcryptoなど)を有効にすると便利ですが、私が理解しているように、実行するにはスーパーユーザーである必要がありますCREATE EXTENSION。スーパーユーザーアカウントで手動でログインせずに、このような拡張機能を有効にする方法はありますか?

2
CTEに挿入された行を同じステートメントで更新できないのはなぜですか?
PostgreSQL 9.5では、次のように作成された単純なテーブルがあるとします。 create table tbl ( id serial primary key, val integer ); SQLを実行して値を挿入し、次に同じステートメントでUPDATEします。 WITH newval AS ( INSERT INTO tbl(val) VALUES (1) RETURNING id ) UPDATE tbl SET val=2 FROM newval WHERE tbl.id=newval.id; その結果、UPDATEは無視されます。 testdb=> select * from tbl; ┌────┬─────┐ │ id │ val │ ├────┼─────┤ │ 1 │ …
12 postgresql  cte 

1
PostgreSQLのテーブルスペースを移動するにはどうすればよいですか?
PostgreSQL 9.3のテーブルスペースをから/old/dirに物理的に移動する方法はあり/new/dirますか?mvディレクトリだけを表示して、テーブルスペースがにあることをPostgreSQLに伝えたいと思います/new/dir。以下のように見えるALTER TABLESPACEだけで名前を変更することができます。 新しいテーブルスペースを作成したり、データベースをそこに移動したりすることは避けたいです。これは、多くの時間とディスク領域を必要とする低速なコピープロセスになると思います。私はまた、シンボリックリンク避けたい/old/dirに/new/dir。

2
PostgreSQLでGINインデックスを使用するときにORDER BYソートを高速化する方法は?
私はこのようなテーブルを持っています: CREATE TABLE products ( id serial PRIMARY KEY, category_ids integer[], published boolean NOT NULL, score integer NOT NULL, title varchar NOT NULL); 製品は複数のカテゴリに属する​​ことができます。category_ids列は、すべての製品のカテゴリのIDのリストを保持します。 典型的なクエリは次のようになります(常に単一のカテゴリを検索します): SELECT * FROM products WHERE published AND category_ids @> ARRAY[23465] ORDER BY score DESC, title LIMIT 20 OFFSET 8000; スピードアップするには、次のインデックスを使用します。 CREATE INDEX idx_test1 ON products …

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