CREATE ASSERTION SQL92で標準化された。1つ以上、複数のテーブルに対して制約をかける「表明」を定義する。 実装しているDBMSが少ないため知名度は低いが、DB側で複雑な制限をかけれるため処理速度の改善に繋がるらしい。 ストアドプロシージャとかと同じ理屈か? (この「表明」と言う考え方はC++などのASSERTチェック等に近いものだと思われる。データ操作時にある条件を判定し、異常である場合はエラーを投げる。) 設定した条件が偽の場合にエラーを発生させることができ、SELECT文を使った複雑な制約を定義することができる。 CREATE ASSERTION 入力値チェック CHECK (NOT EXIST(SELECT * FROM 価格票,限界値 WHERE 価格表.商品コード = 限界値.商品コード AND 価格票.価格 <= 限界値.上限価格)) ※表明名が「入力値チェ
Teradataで3本以上のテーブルを結合する場合、必ず中間結果のスプールへの(つまりディスクへの)書き出しが発生する。 例えばa, b, cの3本を結合するなら、aとbの結合結果をスプールに書いて、次にスプールとcを結合する。 b, cが件数の非常に少ないテーブルであっても、スプールを使うのを止めない。 ということは、中間結果のレコード長を減らせばスプールに書き出すバイト数も減少するので、DBMS内の処理時間を大幅に短縮できる。 100万件のトランザクション t に100件と10件のマスタ m1, m2 を結合するSQLを考えてみる。 それぞれのマスタには { コード, 名称, カナ名称, 短縮名, ... } といった列があり、いまマスタから取得したいのは短縮名だけだとする。 PostgreSQLなら、以下の a) b) はほとんど同じ速さで処理されるだろう。 a) select *
Hitoshi Harada ここまでで一通り分析を終えました。ある時点での分析を行うことももちろんのこと、継続的にログを分析していき結果を比較していきたいものです。今回のデータは6日ばかりを対象にしているためデータサイズは大きくありませんでしたが、1ヶ月、1年と経過するにつれてサイズが増大します。ここでは、分析を継続していくために必要なテーブルパーティショニング(分割)の技術についてご紹介します。パーティショニングについてはこちらでも紹介しています。併せてお読み下さい。 PostgreSQLにおけるパーティショニング 9.0 現在、PostgreSQLにおけるパーティショニング機能とは、単一ノードにおける水平分割です。つまり、1マシン上において、行を選り分けることでテーブルを分割します。世の中のRDBMSには垂直分割(列による選り分け)をサポートしたり複数ノード(複数のマシン上にテーブル
Ganymed SSH-2 for Java is an open source library which implements the SSH-2 protocol in pure Java (originally developed for J2SE 1.4.2). It allows one to connect to SSH servers from within Java programs. It supports SSH sessions (remote command execution and shell access), local and remote port forwarding, local stream forwarding, X11 forwarding, SCP and SFTP. There are no dependencies on any JCE
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く