pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
id: 725 所有者: msakamoto-sf 作成日: 2010-08-02 08:20:39 カテゴリ: PostgreSQL [ Prev ] [ Next ] [ 技術 ] PostgreSQLの少なくとも7.4以降では、CREATE TABLE実行時に "serial" を型に指定すると、対応するシーケンスを自動生成してnextval()してくれるようになります。 今回は、連番キー値が格納されるが主キー設定もされていないしシーケンスも使われていないカラムに対し"serial"型のような自動採番を設定する方法についてメモしておきます。 つまり、 CREATE TABLE foo (id integer, name text); これを、 CREATE TABLE foo (id serial PRIMARY KEY, name text); したことにします。 なお動作確認は
まず、 create table test (id serial primary key, data text); でテーブルを作成する。 そして、データをインポートする。 カウント関数を呼び出す lenovo=# select count(*) from test; count - 4194304 (1 row) Time: 1040.870 ms 遅いじゃないか ネットで調べて、いろんな方法がありますが、triggerを使うとか。 面倒くさいと思います。 ほかの方法、pg_classを利用する。試してみると、 lenovo=# select reltuples::integer from pg_class where relname='test'; reltuples - 4194304 (1 row) Time: 14.990 ms 正確じゃん。 でも… lenovo=# inser
説明 psqlとはPostgreSQLのターミナル型フロントエンドです。 対話的に問い合わせを入力し、それをPostgreSQLに対して発行して、結果を確認することができます。 また、ファイルまたはコマンドライン引数から入力を読み込むことも可能です。 さらに、psqlは、スクリプトの記述を簡便化したり、様々なタスクを自動化したりする、いくつものメタコマンドとシェルに似た各種の機能を備えています。 -a --echo-all 読み込んだ全ての空でない入力行を標準出力に表示します。 (これは対話式に読み込まれる行には適用されません。) これはECHO変数をallに設定するのと同じ意味を持ちます。 -A --no-align 位置揃えなしの出力モードに切り替えます。 (デフォルトの出力モードはaligned(位置揃えあり)です。) これは\pset format unalignedと同等です。
概要 PostgreSQL上で実行中のSQLを停止する方法について説明する。 Javaサーバ上で時間のかかるSQLを実行してしまい、Javaサーバを停止せずにそのスレッドだけを停止したい場合などにおいて、次の手順で実行された SQL を停止できる。 手順 プロセスID(pid)の確認 まず、問題のSQLが実行されるプロセスのIDを調べる。 コマンドラインなどで、次のSQLを実行。 SELECT procpid, start, now() - start AS lap, current_query FROM (SELECT backendid, pg_stat_get_backend_pid(S.backendid) AS procpid, pg_stat_get_backend_activity_start(S.backendid) AS start, pg_stat_get_backen
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
PostgreSQL の COPY コマンドと SQL だけを使って、いろいろなデータをテーブルにインポートする方法についてまとめてみました。 プログラミングが得意で、データベースはあんまり得意じゃないっていう人だと、データをインポートする際に、何でもかんでもゴリゴリとプログラムを書いて済ませてしまうことが多いかと思いますが、COPY コマンドと SQL だけでも結構複雑なデータをインポートすることができたりしますので、簡単に紹介してみます。 シーケンスをインクリメントしながらインポートする 例えば、次のような感じのテーブルと user_no_seq というシーケンスがあったとします。 user_no | user_name | total_score ---------+-----------+------------- 1 | A | 120 2 | B | 130 3 | C | 9
PostgreSQLを遅くしている犯人はどこだ?:Linuxトラブルシューティング探偵団(3)(1/3 ページ) NTTグループの各社で鳴らした俺たちLinuxトラブルシューティング探偵団は、各社で培ったOSS関連技術を手に、NTT OSSセンタに集められた。普段は基本的にNTTグループのみを相手に活動しているが、それだけで終わる俺たちじゃあない。引き続きOSSに関するトラブルの解決過程を@ITで連載していくぜ。 ソースコードさえあればどんなトラブルでも解決する命知らず、不可能を可能にし、多くのバグを粉砕する、俺たちLinuxトラブルシューティング探偵団! 助けを借りたいときは、いつでもいってくれ! OS:高田哲生 俺はリーダー、高田哲生。Linuxの達人。俺のようにソースコードレベルでOSを理解している人間でなければ、百戦錬磨のLinuxトラブルシューティング探偵団のリーダーは務まらん。
パーティショニングとは、論理的には一つの大きなテーブルであるものを、物理的により小さな部品に分割することを指します。 パーティショニングによって得られる利点は以下のようにいくつかあります。 特定の条件下で問い合わせのパフォーマンスが劇的に向上することがあります。 特にテーブル内のアクセスが集中する行のほとんどが単一または少数のパーティションに存在している場合がそうです。 パーティショニングは実質的にインデックスの上位木レベルの代わりになり、インデックスの頻繁に使われる部分がメモリに収まりやすくなるようにします。 問い合わせや更新が一つのパーティションの大部分にアクセスする場合、インデックスを使用してテーブル全体にまたがるランダムアクセス読み取りをする代わりに、そのパーティションへの順次アクセスをすることでパフォーマンスを向上させることができます。 一括挿入や削除について、その使い方のパター
----- 実行計画 ----- Sort (cost=1404892.20..1404892.67 rows=187 width=43) (actual time=62501.980..62502.053 rows=28 loops=1) Sort Key: (date_trunc('day'::text, apache_log.reqtime)) Sort Method: quicksort Memory: 18kB -> HashAggregate (cost=1404879.53..1404885.14 rows=187 width=43) (actual time=62501.715..62501.828 rows=28 loops=1) -> Bitmap Heap Scan on apache_log (cost=17089.58..1404142.30 rows=73723
CentOS5にPostgreSQL8.3をソースコードからコンパイルしてインストールする方法についての覚え書き。 試した環境。CentOSインストール時に開発ツールとライブラリもインストール済み。 項目 バージョン 下準備 PostgreSQLのソースコードを公式サイトからダウンロードします。 現行バージョンのダウンロードURL http://www.postgresql.org/ftp/source/v8.3.5/ ファイル postgresql-8.3.5.tar.gz 事前にPostgreSQL実行用ユーザをpostgresとして作成します。uid,gidは適当でよいのですが、ここでは(uid=34,gid=34)としています。 [root]# groupadd -g 34 postgres [root]# useradd -u 34 -g 34 postgres 念のためにログ
2009年11月14日のインフラエンジニア勉強会(hbstudy)で使用したスライドです。 hbstudy#5 http://tinyurl.com/hbstudy5 ・パフォーマンスと初期設定 ・データベースの監視 ・性能劣化とメンテナンス を含んでいます。Read less
パーティショニングとはデータを複数に分割して格納することです。特にデータサイズが大きい場合には、性能や運用性の向上や、故障の影響を局所化できる利点があります。
$ brew install postgresql $ initdb /Users/komagata/homebrew/var/postgres $ cp /Users/komagata/homebrew/Cellar/postgresql/9.0.2/org.postgresql.postgres.plist ~/Library/LaunchAgents $ launchctl load -w ~/Library/LaunchAgents/org.postgresql.postgres.plist 起動。 $ pg_ctl -D /Users/komagata/homebrew/var/postgres -l /Users/komagata/homebrew/var/postgres/server.log start 終了。 $ pg_ctl -D /Users/komagata/hom
EXPLAIN や EXPLAIN ANALYZE の使い方と、それらを利用してスロークエリの実行計画を改善する方法を紹介します。 Explaining Explain ~ PostgreSQLの実行計画を読む ~ (PDF版) OSCON 2005 で講演され、2005年のJPUG夏合宿で分担して翻訳した発表資料です。PostgreSQL 8.3 に対応できるよう内容を更新しています。 Explaining Explain ~ PostgreSQLの実行計画を読む ~ (PPT版) OSCON 2005 で講演され、2005年のJPUG夏合宿で分担して翻訳した発表資料です。PostgreSQL 8.3 に対応できるよう内容を更新しています。
NTT オープンソースソフトウェアセンタ 板垣 貴裕 スロークエリ (時間のかかるSQL) を発見するまでの手順を解説します。スロークエリ分析と改善は以下の流れで行うことになります。この記事では主に 1. のスロークエリの特定方法について解説します。2.については『スロークエリの改善』を参考にしてください。 どのSQLが遅いのかを見つける。 そのSQLがなぜ時間がかかるのかを判断する。 設定パラメータ、SQL、スキーマなどを改善する。 着目したSQLの性能を再測定し、2. から繰り返す。 着目したSQLのチューニングが完了したら、他のボトルネックを探すため 1. から繰り返す。 スロークエリの見つけ方 スロークエリを見つけるには、大きく分けて統計情報ビューを使う方法と、サーバログを使う方法の2つがあります。統計情報ビューを使う方法は PostgreSQL 8.4 以降でしか利用できませんが
ユーザー情報 CREATE USER(createuser)で作成する。変更はALTER USER。削除はDROP USER(dropuser)。 照会は以下の様なSQLで行う。 select * from pg_shadow; ←権限がある人のみ実行可能。パスワードも見られる。 pg_shadowで表示されるパスワードは、MD5形式の時は暗号化されている。文字列の先頭がmd5になっていたような…。 select * from pg_user; ←権限が無くても実行可能。パスワードは見られない。 select current_user, session_user; ←現在のユーザーIDを表示する関数を使用 パスワードの設定は、以下の様にして行う。 ALTER USER ユーザー名 PASSWORD 'パスワード'; グループ情報 CREATE GROUPで作成する。変更はALTER GRO
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く