0

OK、SS 2008 にはネイティブの正規表現関数がないことに気付きました。また、CLR を使用してそれらを追加できることもわかりました。http://msdn.microsoft.com/en-us/magazine/cc163473.aspxで正規表現 CLR を見つけました が、どうすればよいかわかりません。

だから私は2つの質問があります。正規表現は、2 つのフィールドに対してレコード (一度に最大 1,000,000、年間最大 50,000,000) をインポートする場合にのみ使用されます。

1問目。コード (ASP.NET) で一度に 1 レコードずつ手動で実行できます。パフォーマンス ヒットになることはわかっていますが、どれだけ大きいかはわかりません。これについて何か意見はありますか?

2番目の質問。ダウンロードした CLR ファイルをインストールする方法について、簡単なステップバイステップの説明を教えてもらえますか? 検索してみましたが、必要な情報が表示されなかったか、他の情報に埋もれすぎて見つけられませんでした。

ありがとう

PS SS 2008 (R2 ではない) と VS.NET 2008 を実行しています。

4

2 に答える 2

1

完全なチュートリアルについては、こちらの記事を参照してください。

于 2012-05-17T18:12:16.567 に答える
0

データロードに REGEX のみが必要な場合は、ASP.NET で一度に 1 レコードずつ行うことができます。SQL CLR 統合を使用しても、SQL は一度に 1 レコードずつ値を渡すため、一度に 1 レコードずつ行うことになります。where 句の条件として REGEX を使用する場合は、SQL CLR 統合が唯一のオプションになります。

私がやっていることは、一度に1行ずつ解析することです。1 行で 1 から 5 の SQL 挿入が行われます。次に、これらの SQL 挿入を非同期に行います。挿入の前に次の解析が完了すると、待機します。私の場合、それはデッド ヒートに関するものなので、並列処理を行います。SQL が正規表現を呼び出す場合、シリアル処理に制限されます。

私は多くのデータを解析してロードします。速度が気になる場合は、解析よりも SQL 側を見てください。私は、SQL インデックスの解析を無効にし、1,000 万件のレコードをロードしてから、インデックスを再構築するところまで行っています。SQL テーブルにインデックスがない場合を除き、一度に 1 行の正規表現は通常、SQL 挿入よりも高速です。

于 2012-05-17T18:21:06.017 に答える