私は一時テーブルを使ってデータを一括インポートする以下のストアドプロシージャを持っています。私は一時テーブルがすべてのセッションのためにユニークであることを理解していますが、私のアプリケーションがスレッドを使用していて、アプリケーションプールからの同じSQL接続を使用して、 ?同じ接続プール上の複数の要求にまたがって一意の一時表
2
A
答えて
2
CREATE PROCEDURE [dbo].[Mytestproc]
AS
BEGIN
BEGIN TRANSACTION
CREATE TABLE #Hold
(
ID INT,
VAL NVARCHAR(255)
)
BULK INSERT #Hold
FROM 'C:\data.txt'
WITH
(
FieldTermInAtOr ='|',
RowTermInAtOr ='\n'
)
SELECT *
FROM #Hold
DROP TABLE #Hold
COMMIT TRANSACTION
END
つのスレッドが接続を使用してこのストアドプロシージャを実行している一方で、その同じ接続は、接続プールで再利用することができない - これが共有の危険がありません。他のスレッドはこの接続を使用することができず、代わりに新しい接続を開きます。
さらに、ストアドプロシージャが終了する前に一時テーブルを削除する必要はありません。ストアドプロシージャ内で作成された一時テーブルは、プロシージャが終了すると自動的に削除されます。
0
あなたのアプリケーションがこのストアドプロシージャを同時に呼び出していると、別々の接続であると考えられます。この場合、別々の一時テーブルになります。
ベストな方法はテストすることです。アプリケーションで同時呼び出しを行い、これらの接続を保持します。次に、sp_who
を実行して、接続がアプリケーションに複数あるかどうかを確認し、これらの一時テーブルの出力を表示します(異なるデータが含まれている場合)。
関連する問題
- 1. 単一接続の接続プール
- 2. ReactiveMongo:単一の接続プールインスタンスと複数の接続プールインスタンスと複数の接続プールとの比較
- 3. 2つの同時接続/要求ロック
- 4. 同じサーバー上の複数のアプリケーションプールにまたがるMemoryCacheの単一インスタンス
- 5. 複数のクライアントに一意の結果を同時に提供
- 6. 一意のルート要求には複数のコントローラが必要ですlaravel
- 7. 同じブラウザとIIS同時接続の複数のタブ
- 8. MySQL。リレーショナル表の主キー。一意のIDまたは複数の一意のキー?
- 9. は、私は、データベースへの接続時に接続プールを使用する必要があるアプリケーションを持って動的にMySQLの接続/ J接続プール
- 10. 複数、同一の要素
- 11. 接続プールのmysqlユーザー定義変数の同時実行性?
- 12. 同じページの複数のsocket.io接続
- 13. 複数の要求が同時に発生した場合の予期しない接続状態
- 14. JPA:単一のデータベースフィールド、同じエンティティ上で異なる複数の時間
- 15. redigo異なるプールが単一のサーバに接続する
- 16. ruby activerecord複数の接続プール
- 17. 複数の列にまたがってsqlalchemyが一意である
- 18. 同じクライアントが複数のサーバーに接続できますか?
- 19. エラーHelp ::同じID 'ctl00'を持つ複数のコントロールが見つかりました。 FindControlは、コントロールに一意のIDがあることを要求します
- 20. 同一のデータフォーム上に複数のピッカライタがありますか?
- 21. 正規表現と同じ行に複数の一致
- 22. 接続プールと請求時間別のインスタンス
- 23. 接続プール使用時の同時変更
- 24. SQL:同じテーブルに複数の一致がありますか?
- 25. NodeJS Express - グローバル一意の要求Id
- 26. 要求処理時の永続的TCP接続または接続
- 27. デザインパターンのヘルプ:一意のオブジェクトのプール
- 28. 複数のプロパティ(PS)によってarraylist内の一意のオブジェクト
- 29. BoneCP(または他のプール)は、接続がプールに戻ったときに接続の文を閉じますか?
複数のアクティブな結果セット(MARS)を使用して、同じ接続で複数の要求を行うことができると考えましたが、読み取り専用の可能性がありますか? – newbie
@newbie - MARSでは、複数の選択を並行して実行することしかできないため、コード内で明示的に接続オブジェクトを共有する必要があります。 –
私はこれを要約すると思います - 「一方のスレッドが接続を使用していて、このストアドプロシージャを実行中ですが、同じ接続を接続プールで再利用することはできません」 – newbie