これは奇妙なものです:BULK INSERTを実行して、巨大なテキストファイルからテーブルに2000万レコードを追加すると、しばらく実行された後に、たとえば2,500,000行が...私は15分後にもう一度見ます2,200,000の行があります...少し後には2,000,000があります。 BULK INSERT中にレコードの数をどのくらいダウンさせることができますか?私はまた、ディスクの完全な警告のカップルを知っている。ドライブがいっぱいになったら、SQL Serverはレコードを削除し始めますか?助けて!SQL Serverでレコードが失われていますか?
答えて
私は200万レコードのカップルのバッチでこれを試し、何が起こるか見てみましょう。私はMicrosoft's documentationからこれを引っ張っ:
パフォーマンスの考慮事項
ページ数が 単一のバッチでフラッシュする場合は内部しきい値を超え、バッファ プールのフルスキャンを識別するために発生する可能性があります バッチがコミットするときにフラッシュするページ。このフルスキャンは一括インポートのパフォーマンスを損なう可能性があります。大規模なバッファ プールが低速I/Oサブシステムと組み合わされると、内部しきい値を超えた可能性があります( )。大きなマシンでのバッファオーバーフローを回避するには、TABLOCKヒント( バルク最適化を削除)を使用するか、より小さいバッチサイズ( はバルク最適化を保持します)を使用しないでください。コンピュータが異なるため、 は、データロードでさまざまなバッチサイズをテストして にすることをお勧めします。
bcp utilityを調べることもできます。
こんにちは、dylpickle!さて、これは一般的に今までOKでしたが、常にたくさんのレコードがあります。私はディスクがいっぱいになっている可能性があるので、それが動いているのかどうか疑問に思っています。しかし、それでも、BULK INSERTが実行され続けるのに伴い、レコードの数が減少する理由を説明していません。 –
それは変です。私はBob Kaufmanがロールバックのアイディアを持っているかもしれないと思う。ディスク容量とログサイズは、診断に役立つ欠落した情報です。 – dylpickle
SQLサーバーはスレッドとジョブリストを使用します。バルクスレッドがバッチ内の多くの挿入ジョブを処理してディスクに書き込むとしましょう。次に、ディスクに実際に書き込む別のスレッドがあります。これは、OSがディスクに直接書き込むことを許可するまで待たなければなりません。その後、ジョブを取り出してディスクに書き込みます。ジョブでエラーが発生した場合は、エラーをスローし、次の書き込みウィンドウをクリーニング、終了、および待機し、次のバッチで繰り返します。これは、ジョブが同期して実行され続ける方法です。時にはトリップして停止することもありません。 – Tschallacka
- 1. SQL Serverで改行が失われる
- 2. ASP.NET 3.5 Microsoft SQL Serverなし - 何が失われますか?
- 3. SQL Serverクエリのインデックスが失われましたか?
- 4. SQL Serverレコードが消失した原因は何ですか?
- 5. SQL Server Caseステートメントでレコードがフィルタリングされていません
- 6. SQL Server 2008のログに保存されているプロキシが失われた
- 7. ナビゲーションプロパティが失われていますか?
- 8. OpenRefine - 失われたレコード
- 9. PHPセッションが失われています
- 10. PHP +セッションデータが失われています
- 11. igraph_neighborhood「Valgrindの出力:ブロックが間接的損失レコードに失われている」
- 12. XML PATHネストが行われていないためのSQL Server
- 13. SQL Server Reporting Services 2005の管理機能が失われました
- 14. dust.jsハンドラで 'this'コンテキストが失われていますか?
- 15. UPDATEレコード - SQL Serverの
- 16. Sql Serverでdistinctの代わりにすべてのレコードを要求する
- 17. Windows-Ansi DBFをSQL Serverにインポートすると文字データが失われる
- 18. レコードを2つのテーブルに挿入していますか? SQL Serverで?
- 19. SQL Serverのレコード数に基づいてレコードを2列に分割します
- 20. 終了時にHBaseレコードが失われました
- 21. いつSQL ServerにIS_MEMBERが設定されていますか?
- 22. データがSQLデータベースのテーブルから失われました
- 23. SQL Serverでレコードにローマ数字が含まれているかどうかを調べる方法は?
- 24. SqlDataAdapterおよびアンビエントトランザクションで失われたテーブルをロックするトリガーのSQL Serverエラー
- 25. JavaScriptのポップアップでフォーカスが失われてしまいます
- 26. SQL Serverでレコードが見つかるまで追加の条件を適用してレコードを選択する
- 27. SQL Serverでトランザクションが失敗した場合、トリガーはロールバックされますか?
- 28. ASP.NETロールプロバイダ:SQL Expressの代わりにSQL Serverを使用していますか?
- 29. YQL HTML要素の属性が失われていますか?
- 30. PHP/AJAXマルチユーザアプリ - 何とかデータが失われています
クエリを実行するたびにドライブに空き容量がありますか?また、推測の何か、しかし私はあなたが期待するかもしれない事が 'COMMIT'tedではないと思っています。 [この質問はインスピレーションを与えるかもしれません。](http://stackoverflow.com/questions/41869/is-sql-server-bulk-insert-transactional) –