SQLServer2005テーブルから別のシステムにデータを取得する必要があります。
私のベンダーは言う:
「SQLに直接アクセスしてデータを収集することはお勧めしません。データが破損したり、エクスポート中にテーブルがロックされたりする可能性があるためです。」
本当?
SQLServer2005テーブルから別のシステムにデータを取得する必要があります。
私のベンダーは言う:
「SQLに直接アクセスしてデータを収集することはお勧めしません。データが破損したり、エクスポート中にテーブルがロックされたりする可能性があるためです。」
本当?
はい。エクスポート中にテーブルをロックできます。ロックを回避したい場合は、WITH(NOLOCK)ヒントを使用できます(ただし、「古い」または一貫性のないデータを読み取る可能性があることに注意してください)。
データの破損とはどういう意味ですか?ロックなしでデータを読み取るだけでは、データを破損することはできません(ただし、一貫性のないデータを読み取る可能性があります)。
Microsoft自身によると、この質問に対する答えは次のとおりです。
「MicrosoftNavisionへのODBCアクセスは、読み取り操作で完全にサポートされていますが、ビジネスロジックがバイパスされるため、書き込み操作には注意が必要です(たとえば、トリガーは実行されません)。」
出典:http://www.navisionguider.dk/downloads/Nav_IntegrationGuide1.2.pdfの15ページ
読み取り操作のみにODBCを使用した経験のある人はいますか?書き込み操作を重大な方法で妨害しますか?(書き込み操作ができなくなったり、データが破壊されたりしませんか)?それとも単にパフォーマンスの問題ですか?(大量のデータをエクスポート/読み取りしている間、書き込みが遅くなります)?ダーティな読み取り(古いデータの読み取り)が発生する可能性があると思いますが、他のユーザーは書き込み操作を実行できるはずですか?