私は2つのアプリケーションを持っています。 1つは無限ループを持つように連続してデータベースにデータを挿入します。SQLサーバーはアプリケーション間でデータを並列にどのように挿入しますか?
2番目のアプリケーションが同じデータベースとテーブルにデータを挿入すると、何が起こるのですか。
これを処理する別のアプリケーションの挿入が完了するまで待ちますか?
それは忙しいと言いますか?
コードで例外がスローされますか?
私は2つのアプリケーションを持っています。 1つは無限ループを持つように連続してデータベースにデータを挿入します。SQLサーバーはアプリケーション間でデータを並列にどのように挿入しますか?
2番目のアプリケーションが同じデータベースとテーブルにデータを挿入すると、何が起こるのですか。
これを処理する別のアプリケーションの挿入が完了するまで待ちますか?
それは忙しいと言いますか?
コードで例外がスローされますか?
SQLサーバーには接続プールと呼ばれるものがあります。これは、データベースへの複数回の接続が特定の時刻に実行できることを意味し、簡単なビットが終了する場所です。
たとえば、同時に2つのアプリケーションでデータベースに接続し、各アプリケーションの異なるテーブルにデータを挿入する場合、2つのテーブルは同時に問題なく同時に実行できます。
しかし、それらのアプリケーションは、編集のようなものを同じ行をやってみたかった場合は、「ロック」との問題があります...
基本的にSQLデータベース上の任意の操作は、「セット」の「ロックの取得」が必要ですあなたのケースで何が起きるかを言うのは難しいでしょう。
したがって、簡単な答えは: はい、SQLは(挿入物のように)いくつかの節で同時に起こります。
そして、長い答え... は、ロックとデータベースとサーバーの構成に関する深い知識が必要です。
これは、トランザクションがあるかどうか、分離レベルは何か、クラスタ化インデックスは何か、挿入するデータの種類などによって異なります。インサートはテーブルの最小部分のみをブロックし、2番目のインサートが同じパーツに挿入されていない場合は、同時に実行されます。 –
3つの異なるDBMSにタグを付けることはもちろん。答えはすべての人にとって同じではありません。 –
ああ、SQL Server以上のものがあるかどうか見ていないので、あなたが何か他のものを使っているなら、私のコメントを無視して、正しいものだけをタグ付けしてください。 –