Oracle>>>>>>SQLServer
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
03/07/02 22:08ID:8WMlI+0/0213NAME IS NULL
2010/04/01(木) 21:33:06ID:xcUcZ8YLオラクル都市伝説に物申す。
http://d.hatena.ne.jp/matu_tak/20100324/1269539205
どちらの言ってることが正しいんですかね?
0214NAME IS NULL
2010/04/03(土) 21:53:25ID:yQOBz7ny0215NAME IS NULL
2010/04/03(土) 22:06:40ID:???0216NAME IS NULL
2010/05/01(土) 17:10:12ID:???0217NAME IS NULL
2010/05/19(水) 01:31:13ID:???SQLserverの行ロックってなんや?
検証したんか? したなら、テスト環境書かんかい。
SQLserverオタは必ずテスト結果も出さずに出来る出来るいいよる。
オラクルの行ロックは検証結果があっちこっちで書かれてるやろ。
0218NAME IS NULL
2010/06/03(木) 14:25:49ID:???該当ページに含まれるすべての行に行ロックが発生しました。
結論:SQLserverで行ロックはできません。
0219NAME IS NULL
2010/06/17(木) 12:25:36ID:???会社でOracle使ってるものですけど、ある時SQL Server教えてもらえる機会があって、教えてもらいながら
ヨタヨタ使ってたんですけど、使ってたら
select table-a ......
updete table-b set ....
update table-c set ....
go
select table-b .....
とかやってたときに、table-bの更新間違えてたことに気づいて、まあいいや、と
rollback
したんですよ。そしたら、そのrollback効かなかったんですよ。友人に聞いたらgoしたらrollbackは
効かないんだとかなんとか、
本当なんですかね? commitしてないのにrollback効かないの??
0220NAME IS NULL
2010/06/17(木) 16:23:28ID:???begin transaction命令を使う必要がある。
0221NAME IS NULL
2010/06/18(金) 11:17:18ID:???なんと、SQL Serverは即時コミットモードとTransactionモードなんてのがあるのか、いや驚いた。
しかし、2つのモードをユーザーが意識しながら使い分けなきゃいけないなんて
使い難いだろ。
0222NAME IS NULL
2010/06/18(金) 22:09:05ID:???0223NAME IS NULL
2010/06/18(金) 23:47:53ID:???いや、即時コミットモードなどいらん。
まともなロックと読み取り一貫性があれば。
0224NAME IS NULL
2010/07/01(木) 16:03:47ID:???commitもrollbackもしないままEXITで終了させると、
commitされてしまう。
共有ロック方式の場合長時間ロックは厳禁だから即時コミットデフォなのは妥当な措置だな。
マルチバージョニングでも書き込み同士はロックがかかるから長時間ロックは避けたほうが
いいと思うが、リード操作でロックフリーなのをアピールしたかったのだろう。
0225NAME IS NULL
2010/08/24(火) 02:39:10ID:4e1wvTf+更新済未コミットレコードは読む事さえ出来ない…
0226NAME IS NULL
2010/08/24(火) 03:16:46ID:4e1wvTf+217さんに聞きたいです(純粋に聞きたいだけです)。
SQLServerのロックエスカレーションの発生理由は、
大量の行ロックによるメモリ圧迫に対しての対策だとMS社サイトに書いてありました。
※メモリ節約がより有効と判定された場合は、大量の行ロックを1個のテーブルロックにする
Oracleは、どんなに行ロック件数が多くなってもそのまま?
0227NAME IS NULL
2010/08/24(火) 03:28:24ID:4e1wvTf+0228NAME IS NULL
2010/09/14(火) 08:39:55ID:???exitコマンド打った時にトランザクションが残ってるってメッセージも出ないプログラム設計がダメだな
0229NAME IS NULL
2010/09/26(日) 21:31:40ID:???@ロックエスカレーション
5000行以上のレコードを一度に更新、或いはロックした場合に発生し、
行ロックがテーブルロックへ昇格する。
Aテーブルスキャンによる ロック待ち
対象テーブルの中でたた一件だけでもロックしているレコードがあると、
まったく関係ない行へのロックが獲得できない場合がある。
発生条件としては、キー、或いはインデックス情報だけでダイレクトに
対象データに到達できないSQLを発行した場合。
B実行プランキャッシュの使用判断基準
一度発行されたSQLの実行プランがキャッシュにある場合、
検索条件の値が異なる同様のSQLが発行されると、
明らかに非効率な検索になるにもかかわらず、強引にキャッシュされた
プランを利用してしまい、いつまでも実行結果が返ってこないことがある。
0230NAME IS NULL
2010/09/27(月) 16:50:13ID:???以前のバージョン(SQL Server 2005 以前)では、トレース フラグ 1211 をセットします。
これでロック エスカレーションを禁止することができます。
0231NAME IS NULL
2010/09/27(月) 16:52:18ID:???テーブル単位でロック エスカレーションの禁止を行うことができます。
0232NAME IS NULL
2010/09/27(月) 17:02:33ID:???[テーブルのプロパティ] ([全般] ページ)
[ロック エスカレーション]
DISABLE
ほとんどの場合でロック エスカレーションを禁止します。
テーブルレベルのロックは完全には禁止されません。
たとえば、SERIALIZABLE 分離レベルでクラスタ化インデックスがないテーブルをスキャンしている場合は、
データベース エンジンでテーブル ロックを実行して、データの整合性を保護します。
0233NAME IS NULL
2010/10/01(金) 12:09:54ID:???Bに関しては、Oracleだって同じ現象が発生するじゃん
0234NAME IS NULL
2010/10/01(金) 23:37:48ID:???値を埋め込んだ動的SQLで値の違うキャッシュを使用するなら逆にすごい。
0235NAME IS NULL
2010/10/10(日) 22:42:26ID:???SQL Server 2005 の展開によって、リアルタイムの取引照合とクエリを実現
http://www.microsoft.com/japan/showcase/nasdaq3.mspx
株式会社百五銀行
世界初。Windows Server 2003, Datacenter Edition とSQL Server 2005 Enterprise Edition をプラットフォームに、銀行の勘定系システムを再構築。
http://www.microsoft.com/japan/showcase/hyakugo.mspx
0236NAME IS NULL
2010/10/22(金) 00:09:22ID:???金融系で使うとか正気の沙汰じゃないよ。
社内システムか、分析系システムならいいが‥
■ このスレッドは過去ログ倉庫に格納されています