SQLで以下のような処理をさせています。 select id,売上,入金,(select sum(売上-入金) from t1 where id<=x.id) as 累計 from t1 as x order by id ; データ行が少ない時は問題ないのですが、多くなるにつれ時間がかかります。最悪はタイムアウトが発生してしまいます。 中間テーブルを使う手もありますが、あまりしたくないので、どのようにすると高速処理が出来るのでしょうか? アドバイスをいただけませんか?
SQLで以下のような処理をさせています。 select id,売上,入金,(select sum(売上-入金) from t1 where id<=x.id) as 累計 from t1 as x order by id ; データ行が少ない時は問題ないのですが、多くなるにつれ時間がかかります。最悪はタイムアウトが発生してしまいます。 中間テーブルを使う手もありますが、あまりしたくないので、どのようにすると高速処理が出来るのでしょうか? アドバイスをいただけませんか?
NTT オープンソースソフトウェアセンタ 板垣 貴裕 PostgreSQL でロケール (国際化と地域化) の設定を行うと、データベース内での文字列処理、日付や通貨の表示、メッセージの言語などを変更することができます。特に PostgreSQL 8.4 では、日本語のメッセージ・カタログが追加されたため、エラーメッセージを日本語化したい場合にはロケールを設定する必要があります。 ただし、C ロケール以外を設定すると、インデックスが使われないなどの性能への影響がある場合もあります。また、特に古いバージョンの PostgreSQL では、誤った設定によりサーバが正しく動作しなくなるケースもありました。 この記事では、ロケール設定の効果を結果例を交えて解説すると共に、トラブルへの対応方法を示します。PostgreSQL で日本語を扱う際に、ロケール設定を決める時の参考にして下さい。 Postgr
はじめに 仕事の現場でアプリ開発を一生懸命やっていたら 「PostgreSQLはちゃんとレプリケーション構成にしてあるよね?」 と言われ「え?何それ?」と思った人のためにPostgreSQLのレプリケーション設定手順まとめました。 レプリケーションについて レプリケーションについて、とても簡単に説明します。 同期/非同期について 同期 マスタDBの更新とスレーブDBの更新の両方が終わって処理完了とします。 非同期 マスタDBの更新が終わったら処理完了とします。スレーブDBの更新結果を待ちません。 スタンバイ/ホットスタンバイについて スタンバイ スレーブDBにアクセスできません。 ホットスタンバイ スレーブDBに対して参照処理を行うことができます。更新処理はできません。 今回は非同期レプリケーションでホットスタンバイの構成を構築します。 PostgreSQLのインストールと初期設定は以下参
PostgreSQL にパスワード認証を導入した際のメモです。 psql を使って検証していますが、他のクライアント・アプリケーションにも応用できると思います。各コマンドや設定ファイルには適宜マニュアルへのリンクを張っていますので、必要に応じて参照してください。 例示におけるプラットフォームには CentOS 6.3 を使っています。 他の OS やディストリビューションをお使いの方は、yumなど固有のコマンド名を適宜読み替えてください。 PostgreSQL サーバが動くホストを pghost01、psql を動かすホストを client02、接続時のデータベースユーザ名を pguser01 としています。コマンドラインのプロンプトは“ユーザ名@ホスト名:カレントディレクトリ”です。常に今自分がどのホスト上で誰の権限で操作しているのかを意識してください。 1.インストール Postgre
以前投稿したbgwokerで超簡易クラスタ管理を進化させたpg_keeperについて投稿。 コンセプト このツールのコンセプトは「PostgreSQLの自動フェイルオーバーを簡単に設定する」です。 Pacemaker/corosyncやrepmgrを使えばより細かく、柔軟に設定することが出来ますが、その一方設定が面倒だったり、多くのケースではそこまで柔軟な設定は必要ないと思ったので、「マスタ、スレーブ2台構成でもっと簡単に可用性を向上させたい」と思い作りました。 監視プロセスはPostgreSQLのプロセスの一つとして動作するので、高機能なクラスタリングミドルウェアによくある監視プロセス自体の起動・停止・監視等の作業は発生しません。 ただし、pg_keeperが対応しているのはマスタ1台、スタンバイ1台で同期レプリケーションを使用した場合のみです。 スタンバイを2台以上使用するケースには対
SRA OSS, inc. 北川 俊広 はじめに 本稿では、pgpool-II 3.0 と PostgreSQL 9.0 の Streaming Replication/Hot Standby(以降SR/HSと表記します)機能を組み合わせたクラスタ構成について解説します。 pgpool-II 3.0 pgpool-II は、2010年9月にバージョン 2.3 からバージョン 3.0 へ大幅なメジャーバージョンアップが行われました。3.0 における大きな変更点は SR/HS への対応で、主にクエリ振り分けの処理に変更が加えられています。 pgpool-II で次のとおりパラメータ設定をすると、SR/HSクラスタ構成に適した動作をします。master_slave_sub_mode は、pgpool-II 3.0で新設されたパラメータです。 master_slave_mode = true ma
ストリーミング・レプリケーション (Streaming Replication) は、PostgreSQL 9.0 以降で利用できる、本体組み込みのレプリケーション機能です。参照/更新が可能な1つのマスタDBへの更新操作を、参照のみが可能な複数のスタンバイDBへ転送することで、データベースを複製することができます。スタンバイDBに更新結果が反映されるまでには若干の遅延がありますが、比較的 遅延は少なく、マスタDBへの影響も小さいレプリケーション方式です。 用途 ストリーミング・レプリケーションには以下の用途があります。 多数の参照クエリのサーバ間分散 マスタDB異常時の迅速なフェイルオーバー (切り替え) マスタDBのディスク故障に備えたリアルタイム・バックアップ PostgreSQL 9.1 での強化点 バージョン 9.0 の目玉機能として登場したレプリケーション機能ですが、9.1 では
FreeBSD 10.0にPostgreSQL 9.3.2をインストールし、外部から接続できるようにしました。 FreeBSD + PostgreSQL 9.3.2 外部からの接続を許可する C#から接続してみます。 調べてみると、「Npgsql」というライブラリがメジャーのようです。 .NETライブラリ「Npgsql」によるPostgreSQLの活用 Npgsqlを使用して接続することにしました。 http://pgfoundry.org/frs/?group_id=1000140 こちらから、使用する.NET Frameworkに適したものをダウンロードします。 今回はFramework 3.5を使用するので「Npgsql2.0.14.3-bin-ms.net3.5sp1.zip」をダウンロードしました。 必要最低限のdllは、「Npgsql.dll」と「Mono.Security.d
PHP(pdo_pgsql)から PostgreSQL に SELECT 文でデータを取得する際に、カーソルを使った場合と使わなかった場合で、どのようにリソース消費(主にメモリと実行時間)の違いがあるのかを計測してみました。 検証内容 PostgreSQL テーブルに、1,000,000 件のレコードを持つテーブルを用意し、下記のようなパターンにて、PHP から全レコードを取得して、実行時間と消費メモリを計測します。カーソル利用時は、1度のフェッチで取得する件数によって計測しています。ここでは、前方向のカーソルのみ扱っています。 1) カーソル未使用 + 1 件づつフェッチ 2) カーソル利用 + 1 件づつフェッチ 3) カーソル利用 + 100 件づつフェッチ 4) カーソル利用 + 10,000 件づつフェッチ 5) カーソル利用 + 100,000 件づつフェッチ 6) カーソル利
以下メモ書きです。 Postgresにてテーブル一覧とかカラム一覧とか各種情報を取得するためのSQLです。 間違えていたら教えてください。m(_ _)m [テーブル一覧取得] select relname as TABLE_NAME from pg_stat_user_tables [カラム一覧] select * from information_schema.columns where table_catalog='データベース名' and table_name='テーブル名' order by ordinal_position; [プライマリーキー情報取得] select ccu.column_name as COLUMN_NAME from information_schema.table_constraints tc ,information_schema.constraint_
In the Works – AWS Region in Malaysia We launched an AWS Region in Australia earlier this year, four more (Switzerland, Spain, the United Arab Emirates, and India) in 2022, and are working on regions in Canada, Israel, New Zealand, and Thailand. All told, we now have 99 Availability Zones spread across 31 geographic regions. Malaysia in the Works Today I am happy […] New – Amazon Lightsail for Res
経路探索の前に、まず道路データだけを可視化してみる。2013/05/16 の繰り返しになるが、今回用いた道路データは下図のテーブルとして格納してあり line 列が地理情報(ジオメトリ型)である。これを R に読み込めばよい。 昨年秋 PgDay 2012 Japan で紹介した方法(PostGIS のジオメトリを Shapefile に出力し R の maptools パッケージで読み込む)を使い R から PDF に出力する。一連の処理を一つのストアド関数 r_test_1a にまとめた。 ↓ 関数の冒頭部分。定義文全体は 20130516_pgrouting.zip 内の r_test_1a.sql にある。実際に使うにはポスグレのユーザ名やファイルパス等を環境に合わせる必要がある。なお関数のコメント中にある「リンクテーブル」は道路データのテーブルのこと。 ↓ いつも通り pgAdm
また、PostgreSQL にはいわゆる CLOB, BLOB のような巨大データ専用の型は存在せず、1GB までであれば text や bytea 型をそのまま使えます。1GB を超える場合はラージオブジェクトも利用できますが、アクセスや管理の方法にクセがあるためお奨めできません。数MBまでは text や bytea を使い、それを超えるようなら外部ファイルとして保持したほうが、むしろ安心して運用できるかと思います。 char と varchar, text の比較 PostgreSQL の文字列は以下のような特徴があります。 1. char(n) や varchar(n) の 'n' は「文字数」を表す 他のデータベースではバイト数を表すものもあるので注意しましょう。 2. char(n) は n 文字になるように末尾に空白を追加して保持する n 文字ぴったりで無い限り、末尾の空白の
PostgreSQLのAdvent Calendarに初めて参加させて頂きます。 Hatena Diaryもこの投稿が初めてです。 真面目な投稿が多い中、全く役に立たない上に、OSSの無駄遣いと怒られそうですが。。頑張ります。 概要 Raspberry PiにPostgreSQL(PostGIS)をインストールし、国土交通省が公開している位置参照情報を取り込みました。 位置情報(緯度・経度)から現住所をGISっぽく取得し、OpenJTalkを使って喋らせてみました。 喋ってる場所は緯度:35.448575 経度139.642403の場所(神奈川県庁付近)です。 Google マップ Raspberry Pi(ラズベリーパイ)のご紹介 Raspberry Piは名刺サイズのLinuxが動くシングルボードARMコンピュータです。 http://ja.wikipedia.org/wiki/Ras
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く