タグ

postgresqlとPostgreSQLに関するipusironのブックマーク (32)

  • not null制約の削除

    [PostgreSQL] NOT NULL制約の削除及び追加はALTER TABLE文を使用します。 [書式] #NOT NULL制約の削除

  • PostgreSQLエラー「ERROR: invalid byte sequence for encoding "EUC_JP": 0x93ab」の原因と対処方法 | r_nobuホームページ (のぶねこブログ)

    TOP > PostgreSQLエラー「ERROR: invalid byte sequence for encoding "EUC_JP": 0x93ab」の原因と対処方法 PostgreSQLエラー「ERROR: invalid byte sequence for encoding "EUC_JP": 0x93ab」の原因と対処方法 IT・コンピュータ・家電等 psqlSQLファイルを指定して実行した際に、「invalid byte sequence for encoding "EUC_JP"」といったエラーが出る時がある。 《例》 psql:test.sql:2001: ERROR: invalid byte sequence for encoding "EUC_JP": 0x93ab この例の場合、psqlでtest.sqlというファイルを指定して実行したところ、EUC_JPの文

    PostgreSQLエラー「ERROR: invalid byte sequence for encoding "EUC_JP": 0x93ab」の原因と対処方法 | r_nobuホームページ (のぶねこブログ)
  • PostgreSQLのトラブルシュートとチューニング — Let's Postgres

    NTT オープンソースソフトウェアセンタ 笠原 辰仁 この記事は、gihyo.jp & Let's Postgres 連動企画「今こそ!PostgreSQL」の第6回記事です。第6回目は、PostgreSQLのエラーメッセージや内部情報を見て、発生している問題の特定とその対策となるチューニングを紹介します。なお、トラブルの発生・予兆を適切に捕捉するためにも、ログの設定や稼動統計情報の監視をしておきましょう。 エラーメッセージについて トラブルと対策の前にエラーメッセージのレベルについて説明しておきます。PostgreSQLは複数のエラーレベルを影響範囲や深刻度によって使い分けています。エラーレベルそれぞれの解釈の仕方を下記の表にまとめてみました。 データベース管理者は、深刻な状況である PANIC と、性能情報を含む LOG レベルのメッセージに注意しましょう。一方、アプリケーション開発者

  • [PostgreSQL]Explain Analyzeで、多重JOINしたSQLをチューニングする · DQNEO日記

    Sec ScanのないSQLをどうやって高速化するのか 当に難しいのはここから。 例えば、Explain Analyzeの結果が下記のようなものだったら、どうしますか? どこにボトルネックがあるか、わかりますか? QUERY PLAN ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Sort (cost=1568.27..1568.51 rows=96 width=260) (actual time=822.175..822.259 rows=

  • tomo.ac

    This domain may be for sale!

  • PostgreSQL more

    PostgreSQL な日々 ビュー データベースには、ビューと呼ばれるものが存在します。普通、テーブルからデータを表示するときには、select 文を使いますが、これをビューとして登録しておくことが出来ます。以前利用した meibo テーブルを元に、年齢が 23 才のデータだけ選択する select 文があったとします。 => insert into meibo values ('Jangon Source', 23, 'Public'); INSERT 16607 1 => insert into meibo values ('Splint Coocer', 23, 'Onittor'); INSERT 16608 1 => select * from meibo; name | age | address -----------------+-----+---------------

  • CREATE INDEX

    SynopsisCREATE [ UNIQUE ] INDEX index_name ON table [ USING acc_name ] ( column [ ops_name ] [, ...] ) CREATE [ UNIQUE ] INDEX index_name ON table [ USING acc_name ] ( func_name( column [, ... ]) [ ops_name ] ) UNIQUE システムによって、(もし既にデータが存在しているのであれば)イン デックスが作成された時、及び、データが追加される度にテーブル内 の値に重複があるかどうか検査がなされます。 index_name 作成される、インデックス名。 table インデックスをつけるテーブル名。 acc_name インデックスで使用されるアクセスメソッド名。 デフォルトのアクセスメソッド

  • PostgreSQL tuning technique

    PostgreSQLチューニングテクニック集 SELECT ... WHERE foo = 100 ORDER BY barをSELECT ... WHERE foo = 100 ORDER BY i, jに書き換える(2004/08/18掲載) SELECT * FROM t1 WHERE i = 100 ORDER BY j; のようなパターンの検索では,iにインデックスを貼ることである程度の高 速化ができますが,その後でソートが発生し,速度低下の要因になります. SELECT * FROM t1 WHERE i = 100 ORDER BY j LIMIT 5; のように,出力結果件数を制限しかつjにインデックスを貼ると,今度はjのイ ンデックスを使うようになります. しかし,よく考えてみると,iで検索し,jでソートするのはiとjのインデック スの両方を使えば一度にできるはずです

  • PostgreSQL の便利な SQL

    PostgreSQL の便利な SQL 集を、メモ代わりに書いておきます。 適宜追加していく予定です。バージョンは 7.3.4 です。 データベース一覧をデータベース名順で表示 SELECT datname FROM pg_database ORDER BY datname; テーブルの一覧をテーブル名順で表示 SELECT * FROM pg_tables ORDER BY tablename; ユーザ一覧をユーザ名順で表示 SELECT * FROM pg_user ORDER BY usename; ビューの一覧を表示 SELECT viewname FROM pg_views ORDER BY viewname; インデックスの一覧を表示 SELECT tablename, indexname FROM pg_indexes; Oracle の NVL関数 PostgreSQL

  • インデックスを作成して,SQLの速度をチューニングする手順 (PostgreSQLで,EXPLAIN文とCREATE INDEX文によるパフォーマンス改善) - 主に言語とシステム開発に関して

    以下の5ステップで,適切なインデックスを作成し,SQLを高速化できる。 (1) パフォーマンスを改善すべきSQL(もしくはカラム)を特定 (1−1) ログを閲覧し,実行秒数の大きいものを抽出する。 (1−2) 統計テーブルを閲覧し,よく利用されるテーブルを特定する。 (2) 該当SQLのプランやコストを確認 (3) 該当カラムに対してインデックスを作成 (4) インデックスが作成されたことを確認 (5) SQLのプランやコストが改善されたことを確認 補足 ※↑ もくじジェネレータ で自動生成 DBはPostgreSQLを想定。 (1)パフォーマンスを改善すべきSQL(もしくはカラム)を特定 まず,インデックスを作成すべきカラムを見極める。 その方法は2つある。 (1−1)ログを閲覧し,実行秒数の大きいものを抽出する。 SQLの実行ログを閲覧する。 たとえば,Ruby on Railsなら,

    インデックスを作成して,SQLの速度をチューニングする手順 (PostgreSQLで,EXPLAIN文とCREATE INDEX文によるパフォーマンス改善) - 主に言語とシステム開発に関して
  • Trasis Lab » PostgreSQLで現在実行中のSQLの確認と、プロセスのkill

    概要 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

  • シーケンスの値を変更をするには

    [PostgreSQL] SELECT SETVAL ('シーケンス名','新しいシーケンス番号'); で変更ができます。 [例] SELECT SETVAL('"郵便番号マスタ_シリアル_seq"',123031); SELECT last_value from "郵便番号マスタ_シリアル_seq"; last_value ------------ 121637 (1 row) « ログを取るには | | テーブルを別テーブルにコピーするには »

  • PostgreSQL で LANケーブルが抜けた場合にConnectionを破棄する方法 - susumuis Info

    TomcatでWebアプリを開発していてDBとの接続はコネクションプーリングを行なっています。コネクションプーリングをしているとはいえ、何らかの原因でConnectionが使い物にならない場合は、再接続をするために、Connection取得時に以下のようなSQLを投げて死活チェックを行なっています。 select 1ところが、例えばDBサーバへのLANケーブルが抜けた場合、このSQLをいつまでも実行してしまい、結果的にConnectionPoolからの取得待ち行列がたまり、Tomcatのスレッドを消費してDBが不要なサービスにまで影響を及ぼしてしまうという問題があります。 その問題が発生しないように、クエリにタイムアウトを施したいと思い、まずは以下のようにしてみました。 Statement stmt = connection.createStatement(); stmt.setQuery

    PostgreSQL で LANケーブルが抜けた場合にConnectionを破棄する方法 - susumuis Info
  • postgresでSQLのログを取得する « kawama.jp

    「postgres8.0で、SQLのログを取る」という作業をやった。 /var/log/postgres 初期状態ではここにエラーログ等が記録されるようになってるが、今回はここにDML(insert.update.delete)のログも残すようにした。 設定は簡単。postgresql.confにある「log_statement」のところを「log_statement = ‘mod’」にするだけ。 そして「pg_ctl reload」で設定を読み込ませればDMLが記録されるようになります。 以上。 http://ml.postgresql.jp/pipermail/pgsql-jp/2003-November/015217.html http://www.sraoss.co.jp/PostgreSQL/8.0/changes.html http://www.postgresql.jp/do

  • PostgreSQLを本当に高速化したい人のための10のポイント | 独り言v6

    空気を読まずにPostgreSQLのを高速化する10のポイント - 象と戯れ -空気を読まずにPostgreSQLのを高速化する10のポイント - 象と戯れ - postgresqlグループ.の元エントリを読んで思うところがあったのだが、 PostgreSQLを高速化する16のポイント だからそんなせまっくるしいところでトンチンカンにdisる暇あるんだったら自分のブログでお好みの議論を書くかさもなきゃ/dev/nullにでも吐けとやんわりと言ってるんだよハゲ。 というわけでw。 だよねw。 まあ正直、上記元ネタのほうには色々突っ込みどころ満載なのだが、それは置いておくとしてL.starなりの高速化ポイントを一度書いておかないと、と思ったので記す。ただ、L.starはもうPostgreSQL界隈から離れて久しいので、必ずしも最新の内容を網羅していないことに注意されたし。また、出来るだけPos

  • わと : PostgreSQLでコマンドタイムアウト

    2010年10月29日02:55 カテゴリSQLPostgreSQL PostgreSQLでコマンドタイムアウト 節操無く、ノンセクション備忘録 今日はPostgreSQL(JDBC) JDBCには「setTimeout()」メソッドで指定すれば、SQL実行に時間がかかった際に自動的にタイムアウトしてくれます。 なので、このあたりの設定を忘れずに実施するため、Connectionに薄〜いラッパーを自作してましたが、PostgreSQL(8.4.5、JDBC4)はこのメソッドを実装していない(´;ω;`) とりあえずタイムアウト設定無しで進めようと思っていたけど、少し調べたら http://efreedom.com/Question/1-1175173/JDBC-Postgres-Query-Timeout SET statement_timeout TO 1000; -- for a se

  • Denbun POP版マニュアル

  • 実践テクニックをご紹介 徒然PostgreSQL散策

    第2 回 PostgreSQL 夏休み工作教室 ∼ SQL をカスタマイズしよう 日 PostgreSQL ユーザ会 理事長 石井 達夫 ISHII Tatsuo ● ishii@postgresql.jp げ,大規模なWeb システムをPHP で構築しようとす はじめに 今年も暑い夏がやってきましたが,みなさんお元気 におすごしでしょうか.日の夏は執筆作業にとって は非常につらい季節で,冷房をかけすぎると健康に悪 いし,かといって冷房なしというのも汗のために原稿 用紙が湿ってしまうなど不都合がおきます注1. そこで最近ついに無線LAN を導入し,家の中で涼 しいところならどこでも執筆できる環境を整えました. これが思いのほか快適で,調子に乗ってバスパワーで 動作するUSBの外付ディスクまで買ってしまいました. これで「家中どこでも書斎」環境の完成です:-) るときPHP

  • 明示的ロック

    9.3. 明示的ロックPostgreSQLは、テーブル内のデータに対する同時アクセスを制御するためにさまざまな種類のロックモードを備えています。 これらのモードは、MVCC では必要な動作を得られない場合、アプリケーション制御のロックに使用することができます。 また、ほとんどの PostgreSQL コマンドでは、参照されるテーブルがそのコマンドの実行中に別の方法で削除もしくは変更されていないことを確実にするために、適切なモードのロックを自動的に獲得します。 (たとえば、ALTER TABLE コマンドは、同じテーブルに対する他の操作とは同時に実行できません。) 9.3.1. テーブルレベルロック 以下のリストに、PostgreSQL で自動的に制御される、使用可能なロックモードおよびこれらが使用されるコンテキストを示します。 これらのロックモードは、たとえその名前に "row" (行)

  • PostgreSQLが重い!あなたならどうしますか? · DQNEO日記

    サーバが重いということは、負荷(load average)が高いということです。 topコマンドを叩いてDBサーバの負荷を調べます。 $ top top - 01:36:45 up 340 days, 20:16, 4 users, load average: 0.01, 0.04, 0.00 Tasks: 85 total, 1 running, 84 sleeping, 0 stopped, 0 zombie Cpu(s): 0.8%us, 0.2%sy, 0.0%ni, 97.7%id, 1.2%wa, 0.0%hi, 0.2%si, 0.0%st Mem: 4044720k total, 3996008k used, 48712k free, 60648k buffers Swap: 2152700k total, 252k used, 2152448k free, 3826572