PostgreSQL
データベースへの接続を「強制的に切断」するには,どうしたらよいか。環境は,Linux上で,Ruby on RailsからPostgreSQLにつないでいる場合を想定。 考えうる方式は3通り。 ActiveRecord側から,DB接続を切断する PostgreSQL側から,DB接続を切断する OS側…
バッチのまとめTOPへ Linux上で,巨大なサイズのダミーファイルが欲しい場合がある。例えば,圧縮ソフトの圧縮率を比較したい場合など。 この場合,ダミーファイルの性質として,下記の点が求められる。 内容が,極端に「均質」過ぎてはいけない。(圧縮結果…
複数のINSERT文を「動的に」発行するには,どうしたらよいか? 例えば,都合のいいサンプルデータをDBに大量投入したいとか。その場合,INSERT文を大量に発行することになる。どうやって? (案1)SQLをExcelで大量生成 (案2)PREPARE文をExcelで大量生成…
以下の5ステップで,適切なインデックスを作成し,SQLを高速化できる。 (1) パフォーマンスを改善すべきSQL(もしくはカラム)を特定 (1−1) ログを閲覧し,実行秒数の大きいものを抽出する。 (1−2) 統計テーブルを閲覧し,よく利用されるテーブ…
データベースには,「トランザクション分離レベル」というものがある。 以下では,それが なぜ必要なのか? デフォルトのレベルでは,どうして駄目なのか? PostgreSQLでは,どうやってレベルを変更・確認するのか? などを取り上げる。 トランザクション分…
SQLの「相関サブクエリ」がわかれば・・・ 巨大なSQLが,迷わずに読めるようになる。 「関数」のような,便利なサブクエリを書けるようになる。 以下では, 「相関サブクエリ」とは何か? 普通のサブクエリ(非相関サブクエリ)やJOIN操作とは何が違うのか?…
バッチのまとめTOPへ コマンドプロンプトのバッチから,ODBC設定を 新規作成 更新 一覧表示 する方法。接続先のDBMSの例としては,PostgreSQLの場合を取り上げる。 GUIだと,DSNを追加するためには コントロールパネル→管理ツール→データソース(ODBC) のダ…
PostgreSQLで,テーブルを使わずに,複数行のデータを取得する方法。 SQLの中で,大量の定数データを使う必要がある。(例えば,1ヶ月間の日付全部とか,1000までの素数全部とか) だが,それらのデータを,前もってどこかのテーブルに格納しておくことはで…
PostgreSQLで,システムテーブルを利用するための入門。 システムテーブルの使い方を覚えれば,自分が作ったテーブルの統計情報や,メタデータを取得する事ができる。DBそのものの理解も深まる。 (1)情報スキーマ(人間に理解しやすい。調べ物をするとき…
バッチのまとめTOPへ JScript/WSHで,CSVを.xlsファイルに変換するスクリプト。 実は,Excelには致命的なバグ(致命的な仕様)があり,CSVの扱いがひどい。 どれほど工夫しても,CSVをExcel上で開くと, 列がずれたり セルの表示形式を楽に制御できず,値が…
バッチのまとめTOPへ PostgreSQLをバッチで自動実行する方法。パスワード入力なし。 PostgreSQLをコマンドラインから利用するためには,通常はpsqlを経由する。psqlは実行時に必ずパスワードを聞かれるので,バッチによる自動運転は不可能。 技術的雑談-Post…