2012-12-13 55 views
0

我哈瓦一個數據庫,其中只有2臺ObjectUser超時而我在Asp.net MVC獲取來自SQL數據

顯然user表中已經對所有用戶與目標表中的信息有百萬條記錄

ObjectTable

  1. ID(INT)
  2. 文本1(爲nvarchar(MAX))
  3. 文本2(爲nvarchar(MAX))

我試圖做一個翻譯,首先我把所有的數據在數據庫中像下面

1:好,好
2:壞了,NotWell
3:人,丈夫女性

如果假設我havae兩個文本框在我的網站的用戶

輸入下列文字

Good Bad Man

然後我將分割該字符串的空間,然後我將有一個字符串數組現在我將採取陣列的第一個元素,並去服務器,以發現在我的數據庫中有任何匹配的Good如果我發現匹配那麼我會用Text2替換那個值,就像我們WellGood那樣花費了太多的時間來翻譯,有時它會給出Request Timed Out。那麼,處理它的最佳方法是什麼

+0

與調用堆棧中產生的異常會幫助我們來幫助你 – gideon

回答

1

您不提供大量信息來幫助您解決超時問題。

唯一的東西,我可以告訴你的是:

  • 首先,檢查是否有您的文本1和文本列的索引。如果沒有,添加它
  • 看看你的SQL查詢。它應該是SELECT * FROM OBJECT WHERE TEXT1='Good'(也許增加一個前100以避免LIKE返回許多事物)。 爲了使索引順利運行,不應該在列TEXT1上調用函數(如大寫或修剪)。如果你使用類似的東西,它應該是TEXT1 LIKE'good%'(%最後)
  • 如果你使用類似的,當心不要在整個表中返回空表項,%或_ entry(LIKE'% ',LIKE'%%',LIKE'_%'可能是壞事情)
  • 如果你只是存儲單詞,爲什麼使用nvarchar(max)?
  • 別忘了清理你的項目,以避免SQL注入