5

SQL Server 2008で、サイズが約1GBのCSVを一括挿入しようとしています。私がそうしている間、それは巨大なtempdb.mdfファイルを作成しています。現在、この1GBのCSVファイルは35GBです。

Microsoftが提供するさまざまなソリューションを試しましたが、機能していないようです。

非本番システムでtempdb.mdfファイルを「縮小」する最も簡単な方法は、SQLサービスがダウンしているときにファイルを削除することだと思います。

それは何か問題を引き起こすだろうか?もしそうなら、どのような問題が予想されますか?

編集

1)これがCSVの行です(約400万行あります):

PS D:\> gc .\map.items.csv | select -last 1
40747646;jdbc:patent/8046822;8683;other/patent;12/31/69 16:00:00.00 PST;E6 E6 80 6D FD 6D 0B 5F 44 66 4E 1C 35 DE 46 BB 19 36 3C 31 37 67 4D 1D DF 58 A5 99 A8 A0 3B 52;crawled;full_patent_db2;Electronic apparatus, function selection method of electronic apparatus and management system of electronic apparatus;Sony Corporation;Tokyo;03;G06F21/00

2) DB記述テーブル情報は次のとおりです(エキゾチックなものはなく、トリガーもありません):https ://gist.github.com/mlissner/4cd13db5a1bbae91dd50

3)データベースをSimpleRecoveryモデルに設定しました。

4

3 に答える 3

4

いいえ、tempdmbdfファイルを削除することはできません。

ファイルを再度縮小する必要がある場合は、SQL Serverを再起動してから、を実行しますDBCC SHRINKFILE()。これはサポートされている操作であり、この「SQLServerが表示されていないときにmdfファイルを削除する」ブードゥーとは異なります。

一括操作を最適化して、tempdbが最初の場所でそれほど大きな打撃を受けないようにすることができるかもしれませんが、実際の問題が何であるかを考えると、詳細を伝えることは不可能です。

于 2013-02-19T19:21:32.170 に答える
1

結局、はい、このファイルを削除しても安全でした。SHRINKFILEは一貫して機能していませんでした(理由はわかりませんが、おそらく基本的なものです)。ファイルの削除は完全に機能しました。

一種のブードゥーの動きですが、ファイルは自動的に再作成され、問題は発生しませんでした。

于 2013-02-26T07:04:00.700 に答える
0

BCPは使えますか?これは、大きなフラットファイルをSQLServerにロードするための推奨される方法です。

または、完全復旧モデルから単純復旧モデルに切り替えることはできますか?これにより、サーバーによって実行されるトランザクションログの量が削減されます。

于 2013-02-19T19:26:04.747 に答える