ページ

2015年3月25日水曜日

[Azure] SQL Database で identity を使うと値が飛ぶ?

Azure の SQL Database で identity を使ってるですが、たまに値が飛びます。
普段は 1、2、3、、、と普通に連続した数値になってますが、何かの拍子に 12501、12502、12503、22169、、、と突然値が飛びます。これが発生するのはしばらく DB アクセスが無かったときのあととかに多いように思います(が、きちんと調べたわけではありません)。
確かにドキュメントには連続した値が保証されるわけではないというようなことが書いてありますし、まぁ、重複した値が生成されることが無ければいいと言えばいいのですが。。。けど、実際に 1万近く飛んだりするのであまりハデに飛ばれると最大値に予定より早く達してしまうんじゃないかとか、ちょっと不安があります(bigint にしとけばそうそう最大値になることは無いでしょうが)。

検索してみると
http://stackoverflow.com/questions/20797672/azure-sql-server-identity-key-values-jumping-up-by-1-000
こんな感じで同様の報告はいくつもあるんですが、どうも仕様と考えた方がいい感じ。どうしてもイヤなら自分で採番するとかないんでしょうね。

0 件のコメント:

コメントを投稿