- - PR -
最終行にinsertされない?
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-11-07 20:41
七味唐辛子さん
有難うございました。 でっち6号 ご丁寧なご指摘有難うございます。 こういう仕様になっていたとは知りませんでした・・・。 | ||||||||
|
投稿日時: 2005-11-14 09:23
その仕様ってホワイトペーパー等に乗っていますでしょうか? 仕様を探しているのですが、見当たらずただいま調査中になります。 | ||||||||
|
投稿日時: 2005-11-14 09:47
要するに最終行に追加されることを期待・意識した実装はやめましょうということです。 期待・意識をしないということで、抽出の際には、
という未記入さんの意見に繋がるということです。 確かに紛らわしい展開だったかもしれませんね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-11-14 09:54
>仕様を探しているのですが、見当たらずただいま調査中になります。
リレーショナル・データベースでは、テーブル=表ではなく、表になって 表示されているのは単なる見かけだけだけですので、実際には数学でいう 「集合」で表せるようです。従ってデータの順序という概念はありません。 http://www.geocities.jp/mickindex/database/db_whyname.html 私も最初順序があるものと思っていましたが、この辺でなるほど!と思いました。 お財布の中のコインが、どのような順序で格納されたか? というのが意味がないのと同じと考えるといいようです。 | ||||||||
|
投稿日時: 2005-11-14 21:03
有難うございます。 理屈ではわかっていても、実際は???ということで、 マイクロソフトに問い合わせてみました!! がっ、、 まわされまわされ気が付けば30分近く格闘した結果、 webから問い合わせてくれと・・・。 また問い合わせた結果がきましたら お知らせいたしますがなんか絶望的ですわ・・・・ | ||||||||
|
投稿日時: 2005-11-14 22:19
SQL Server 2000が関係モデルの関係で 最終行にinsertされないということに関連するようには見えないのは 私だけでしょうか? 通常ですと最終行にinsertされてますよね? で、selectすると普通に最終行に表示されている。 これってどう解釈するんだろって。 いずれにしろNFさんは理解できたのかもしれませんが、 私は複雑になってきました。 これまで私も最終行にinsertされているものだと 思っておりましたので質問させていただきました。 | ||||||||
|
投稿日時: 2005-11-14 22:52
最終行に insert「する」≠最終行に insert「された」
「最終行に insert された」は現象としてそうなっただけであって、 明確に最終行に insert しようとしてそうなった訳ではない、という ことなのでは。 SQL Server は疎いのですが(もとい、SQL Server『も』)、 Oracle なんかだとバッファから空きブロックを検索して格納しようと しますが、そのときは最終ブロックなんてことはありません。 insert しかしないデータベースであれば結果的に最終行というかたちに なるかもしれませんが、delete も大量に実行する環境なら、たまたま insert できる空きブロックが見つかればそこに保存して終了! と なります。 [ここから追加] 本来なら、LRU リストから空きブロックをスキャンして云々などという 動作を説明すべきかもしれないですが、長くなりそうなのでスッパリ割愛。 [ここまで追加] [ メッセージ編集済み 編集者: もしもし 編集日時 2005-11-14 22:59 ] | ||||||||
|
投稿日時: 2005-11-14 23:06
まずは、「最終行」とは何かを考えてみる必要がありそうですね。
一人の人間が更新する場合は「最終行」というか「最後に追加した行」というものはあるのかもしれません。 でも多数の人間が関わってくると、「最終行」という発想自体が無意味なことに気がつきます。 つまり、「最終行」ってどういう意味?ということを明確にしなければならない。 私が最後に書いた行なのか、最後の時刻に更新したのか、業務的には最初に受け付けられたトランザクション番号順なのか いろいろなケースが発生するわけです。 というとこで、順序は Order By で制御してくださいね。ということになっているんだろうなと考えます。 |