Самая тяжелая часть в запросе является SELECT:
Select FirstName, LastName, CountryID, Address, Phone
From Test2.Customer
Where UserID Between 1 and 5000
and CustomerID in (Select CustId from Cust_Details Where CustName like 'Mi%')
Вложенный запрос, вероятно, повторяется для каждой строки. Вы можете проверить этот запуск EXPLAIN PLAN
+ весь запрос SELECT. Я полагаю, что оператор «как» используется против столбца без индексирования. В этом случае (like 'xyz%'
) простой индекс может значительно повысить производительность.
[Добавлено: более того, SELECT CustId ... должен выводить идентификаторы, которые больше 5000, которые не нужны вообще. Составной индекс (CustID, CustName) на Cust_Details также должен быть полезен]
Попробуйте usign объединение вместо:.
Select FirstName, LastName, CountryID, Address, Phone
From Test2.Customer c, Cust_Details cd
Where c.UserID Between 1 and 5000
and c.CustomerID=cd.CustId
and left(cd.CustName) = 'Mi'
Не достаточно информации, чтобы ответить, и, вероятно, принадлежит на serverfault.com – jitter
более чем на 100%? :) – NDM
Пожалуйста, разместите свою схему и инструкцию insert. –