0
我有一個關於優化複雜搜索查詢性能的想法。情況是這樣的:索引視圖可優化多個表格的搜索
基表,與字段上的搜索:
Server (uniqueNumber, serverName, hostName)
表的加盟,與字段上的搜索:
Customer (Company, vatNumber)
CustomerContact (firstName, lastName, email, telephone, mobile)
Ip (ipAddress)
我當時的想法是創建一個像這樣的索引視圖:
viewServers (ServerID, Term)
(ServerID上的聚簇索引,非聚簇術語)
這是所有可能的數據的聯合:
SELECT * FROM (
SELECT s.ServerID AS ServerID, c.Company AS Term FROM Customer c
INNER JOIN Server s ON s.CustomerID = c.CustomerID
UNION
SELECT s.ServerID AS ServerID, c.vatNumber AS Term FROM Customer c
INNER JOIN Server s ON s.CustomerID = c.CustomerID
UNION
SELECT s.ServerID AS ServerID, c.firstName AS Term FROM CustomerContact cc
INNER JOIN Customer s ON s.CustomerID = cc.CustomerID
INNER JOIN Server s ON s.CustomerID = c.CustomerID
UNION
SELECT s.ServerID AS ServerID, i.ipAddress AS Term FROM Ip i
INNER JOIN Server s ON i.ServerID = i.ServerID
UNION
) AS result ORDER BY Term
當我想要搜索,我正打算這樣:
SELECT * FROM Server WHERE ServerID IN (SELECT ServerID FROM viewServers WHERE Term LIKE @Term
好或壞主意?
你應該看看全文索引而不是索引視圖。 –