HHeLiBeXの日記 正道編

日々の記憶の記録とメモ‥

SQL

型付表の定義

DB2 で型付表を作ろうとするときに必要な手順を、いつもいつも忘れるのでメモ。 まぁ、DB2のオンラインマニュアルには書いてあるんだけど‥探すといつも見つからない‥(ちなみに、キーワード「CREATE SEQUENCE」で探すと何番目かに出てくる。) CREATE TYPE "TY…

Re:XMLEXISTSを使う場合の注意点(だと思う)

XMLEXISTSを使う場合の注意点(だと思う) - HHeLiBeXの日記 正道編 一応、記録のため(何)に、実験を再現するためのクエリとかを残しておく。(普段はそうするんだけど、なぜか今回はすっかり忘れていた‥) まずはデータ。そのまんま載せるととんでもないことに…

XMLEXISTSを使う場合の注意点(だと思う)

発端 2年近く前に、次のようなクエリが原因でアプリケーションのレスポンスが悪いという状況に出くわした。 xquery count( for $doc in db2-fn:sqlquery(" select xmlquery('for $doc in $root/hoge return $doc' passing DOCUMENT.DATA as ""root"") from D…

「トランザクション内でユニークなTIMESTAMP値を取得する試み」内での誤解

SQL

だいぶ前に、トランザクション内でユニークなTIMESTAMP値を取得する試み - HHeLiBeXの日記 正道編でGlobal Temporary Tableを使ったアプローチを書いたが、SQL規格上でのGlobal Temporary Tableに関して誤った理解をしていたことが判明。*1 Global Temporary…

トランザクション内でユニークなTIMESTAMP値を取得する試みの実践

「トランザクション内でユニークなTIMESTAMP値を取得する試み」をDB2 v9.5で実践してみる。 その際の考慮点は以下のとおり。 GLOBAL TEMPORARY TABLEを作成するにはUSER TEMPORARY TABLESPACEが必要。 GLOBAL TEMPORARY TABLEは必ず"SESSION"スキーマに作成…

トランザクション内でユニークなTIMESTAMP値を取得する試み

SQL

1つのトランザクションの中で、例えば以下のようなクエリ INSERT INTO TBL(ID, TS) VALUES(1, CURRENT_TIMESTAMP) INSERT INTO TBL(ID, TS) VALUES(2, CURRENT_TIMESTAMP)を発行すると、2つの行のTIMESTAMP値(TS列)は同一になるとは限らない。 しかし時には…