我有2個表, '[項目]與區[name]爲nvarchar(255) '[交易]與現場[SHORT_DESCRIPTION]爲nvarchar(3999)一個大 '像' 匹配查詢
而且我需要這樣做:
Select [Transaction].id, [Item].id
From [Transaction] inner join [Item]
on [Transaction].[short_description] like ('%' + [Item].[name] + '%')
上述工作如果侷限於幾件作品,未經過濾的卻是隻是在看20分鐘,我取消。
我在[name]上有一個NC索引,但由於它的長度,我無法編制索引[short_description]。
[Transaction] has 320,000 rows
[Items] has 42,000.
這是13,860,000,000個組合。
有沒有更好的方法來執行此查詢? 我用全文戳了一下,但我其實並不那麼熟悉,答案並沒有跳出去。
任何意見讚賞!
您正在加入通配符。沒有辦法做得更快。它必須比較每一個單項與每一筆交易。 –
這可能是非規範化有意義的情況。您可以創建一個單獨的表來交叉引用項目名稱和事務簡短描述。兩個表上的觸發器都會使交叉引用保持最新。如果您可以容忍一些陳舊的數據,您可以放棄觸發器並安排工作以在適當的時間刷新交叉引用。 – HABO