ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

Re: MS-SQL、「インデックスが重複しています」の動きについて

このトピックの投稿一覧へ

通常 Re: MS-SQL、「インデックスが重複しています」の動きについて

msg# 1.1.1
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2007-5-28 18:57 | 最終変更
atushi  半人前 居住地: 長野県  投稿数: 30
nkmt様、こんにちは

・以前ダウンロードした[Tutorial_SQL.PDF]より抜粋

SQL系のデフォルトでは、重複不可の実キーを設定した状態で、
同一レコードのカラム移動時に重複エラーは発生しません。
重複不可のチェックは、レコードを格納する直前にエラーを
発生します。これは、パフォーマンスの劣化を考慮し、
MS-SQLへの余計な重複データのチェックを抑止しているためです。
※仮想キーは、重複チェックされないので注意!!
 パフォーマンスの劣化がどの位あるか、私は試していません。

パフォーマンスよりもPervasiveと同等の動作を優先する場合は、
[設定][データベース][MSSQL][特性][データベース情報]に
[CHECK_KEY=Y]を設定します。

------------------------------------------------------
・私の場合は、パフォーマンスの劣化は避けたかったので、
キー項目が変更になったら重複チェックする子タスクを作成して
対応していました。
該当はマスタ保守のPGだけでしたので、それほどでも
なかったです。
------------------------------------------------------

<補足:SQL系は、トランザクション設定が必須!!>
本題とは関係ありませんが、Pervasiveではあまり意識しない
トランザクション設定が、MS-SQL等のSQL系では必須となります。
Pervasiveと大きく違う点として、物理トランザクション開始から
終了までは、ロックするレコードが蓄積されますので注意が必要です。
※トランザクションとロックの設定は、同時に行います。
 トランザクション[なし]ならロック[なし]に設定。
 トランザクション[なし以外]ならロック[なし以外]に設定。

マスタ保守など、限られた人しか行わない場合は良いですが、
1伝票:N明細等の入力系ではロック時間が長くなってしまうので、
ワークテーブルを使用して、一番最後にバッチタスクで、
ワークから実データに書き込みするなどした方が良いです。
投票数:0 平均点:0.00

投稿ツリー

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約