sql >> データベース >  >> RDS >> Sqlserver

MARS (複数のアクティブな結果セット) の欠点?

    少なくとも 2 つの既知の (潜在的な) 欠点があるようです (この (1) チーム ブログ ):

    <オール> <リ>

    明らかに、これは、MARS 対応の設計に対して実行するように設計されていないレガシー システムで潜在的な問題を引き起こす可能性があります。"MARS 以外の世界で実行するように最適化された既存のコードは、変更せずに実行すると、わずかなパフォーマンスの低下を示す可能性があります。 MARS"

    <リ>

    「MARS を使用すると、複数の複数ステートメントのバッチをサーバーに送信できます。サーバーはそのようなバッチの実行をインターリーブします。つまり、バッチがたとえば SET または USE ステートメントを介してサーバーの状態を変更したり、TSQL トランザクション管理ステートメント (BEGIN TRAN、COMMIT、ROLLBACK) を使用したりすると、ユーザーとサーバーの両方が混乱する可能性があります。あなたの実際の意図が何であるかについて」

    MARS 対応の設計はまだ試していませんが、現在のプロジェクトではかなり近いところまで来ています。競合する (場合によっては依存する) クエリ操作 (アクティブなレコードセットが実行されているのと同じデータベースから構成データを遅延読み込みするなど) には、わずかな問題があります。

    詳細については、MSDN サイト (2) ここ を参照してください。

    [ (1) https://web.archive.org/web/20190911155929/https://blogs.msdn.microsoft.com/sqlnativeclient/2006/09/27/using- mars-with-sql-native-client/ ]
    [ (2) http://msdn.microsoft. com/en-us/library/ms131686.aspx ]



    1. INDEXを使用しないクエリ変数を使用したSELECT

    2. TimescaleDB:最後の行を効率的に選択します

    3. Postgresでsqlalchemyを使用して部分的に一意のインデックスを作成する

    4. sidekiqアプリのpostgresエンコーディングエラー