我有一個存儲過程,它將數據插入到3個表中,(並且是UPSERTS),並且有一些rudamentary邏輯。 (IF-THEN-ELSE)C#+ Sql Server - 大量執行存儲過程。最好的辦法?
我需要使用不同的參數執行這個Sproc數百萬次(從C#應用程序),我需要它是FAST。
這樣做的最佳方法是什麼?
有誰知道除了Lucene或Sql Server FTS之外的開源(或不是)現成的文檔索引器?
*我正在嘗試構建文檔詞索引。對於文檔中的每個單詞,我會在DB中插入單詞,docID和單詞位置。
例如100個文檔發生100000次這種情況。
The Sproc:有3個表格可以插入,對於每一個表格我都會做一個UPSERT。
的C#應用程序:
using (SqlConnection con = new SqlConnection(_connectionString))
{
con.Open();
SqlTransaction trans = con.BeginTransaction();
SqlCommand command = new SqlCommand("add_word", con, trans);
command.CommandType = System.Data.CommandType.StoredProcedure;
string[] TextArray;
for (int i = 0; i < Document.NumberOfFields; i++)
{
...
Addword(..., command); <---- this updates parameters with new values and ExecuteNonQuery.
}
}
我忘了提,該代碼會產生在SQL服務器死鎖。我不知道爲什麼會發生這種情況。
現在執行的方式是否慢? – msvcyc 2009-06-29 15:39:08
它實際上做了什麼?是否可以將多個UPSERTS表示爲一個upsert(例如,代替遞增1件物品數量5次,更新一次即可增加將其數目減去5. – Brian 2009-06-29 15:42:27
我正在構建一個文檔詞索引。 所以我添加了一個詞,它是該文檔中的文檔和位置。 當我有數以百計的文件其數千字的慢慢地和它的緩慢... – Roey 2009-06-29 15:43:54