3

Persons テーブルを持つ単純なデータベースがあります

UserId, Name,DOB

テーブルには 750,000 行 (People) が含まれています。

1,000 万行を含む可能性のある CSV ファイルを受け取りました

UserId, Address1, Address2, Address3, TownCity, Region, Country, 
Telephone1, Telephone2, Telephone3 

ユーザーの現在および以前の連絡先の詳細

このファイルには がusersId含まれているため、連絡先の詳細をユーザーに一致させることができます。

個人と連絡先の詳細の間に 1 対多の関係が存在する

私の最終目標は、選択するクエリUserId, Name, DOB, Address1, Address2......などです

現在、.net を使用して csv ファイルを開き、行ごとに読み取り、各レコードを個別に SQL サーバーに書き込みます (おそらく 1,000 万回の SQL 挿入)。

SQL 2012 FileTable/Stream を試しているので、csv ファイルが FileTable に保存されているので、そのようにクエリを実行できます。

SELECT [file_stream], [name], [path_locator], [parent_path_locator],
       [file_type], [cached_file_size], [creation_time]  
FROM [MYDB_FileTable].[dbo].[AddressFileTable]

FileStream と一括挿入、またはコア csv データを操作する他の方法をクエリできるかどうかは誰にもわかりませんか?

私は見てきた

DECLARE @csv varchar(max)
SELECT @csv = convert(varchar(max), [file_stream])  FROM PKIFileTable

しかし、ファイルサイズが原因でこれは機能しません

どんな提案でも大歓迎です。

4

3 に答える 3

1

そのタスクには SSIS を使用できます。必要なことを達成するのはかなり簡単なはずです。

遅いとは?

以前の回答が削除されたのはなぜですか? ここで何が起こっているのですか?

私の答えは、最後の節に基づいています:「コアcsvデータを操作する他の方法はありますか?」

于 2012-05-31T17:55:55.117 に答える
0

Janus007に感謝します-誰かに明白なことを指摘してもらうように思われます-SSISを使用してください。多くの場合、最も簡単な答えです。私はこれを成功させるためにSSISを使用しています

しかし、ファイルストリームに保存されているCSVファイルを最適にクエリする方法を知りたいです。

于 2012-06-01T11:04:59.927 に答える
0

もう 1 つの解決策は、C# で CLR を開発し、それで FileStream を処理することです。この方法を利用すると、TSQL の優れた言語を引き続き使用でき、C# で簡単にデバッグできます。

于 2012-06-01T16:06:33.637 に答える