SQL
DB2 で型付表を作ろうとするときに必要な手順を、いつもいつも忘れるのでメモ。 まぁ、DB2のオンラインマニュアルには書いてあるんだけど‥探すといつも見つからない‥(ちなみに、キーワード「CREATE SEQUENCE」で探すと何番目かに出てくる。) CREATE TYPE "TY…
XMLEXISTSを使う場合の注意点(だと思う) - HHeLiBeXの日記 正道編 一応、記録のため(何)に、実験を再現するためのクエリとかを残しておく。(普段はそうするんだけど、なぜか今回はすっかり忘れていた‥) まずはデータ。そのまんま載せるととんでもないことに…
発端 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値を取得する試み - HHeLiBeXの日記 正道編でGlobal Temporary Tableを使ったアプローチを書いたが、SQL規格上でのGlobal Temporary Tableに関して誤った理解をしていたことが判明。*1 Global Temporary…
「トランザクション内でユニークなTIMESTAMP値を取得する試み」をDB2 v9.5で実践してみる。 その際の考慮点は以下のとおり。 GLOBAL TEMPORARY TABLEを作成するにはUSER TEMPORARY TABLESPACEが必要。 GLOBAL TEMPORARY TABLEは必ず"SESSION"スキーマに作成…
1つのトランザクションの中で、例えば以下のようなクエリ INSERT INTO TBL(ID, TS) VALUES(1, CURRENT_TIMESTAMP) INSERT INTO TBL(ID, TS) VALUES(2, CURRENT_TIMESTAMP)を発行すると、2つの行のTIMESTAMP値(TS列)は同一になるとは限らない。 しかし時には…