pyroman69
Дата: 15.09.2006 17:52:31
Как из Nonsargable-запроса сделать Sargable, например, для этого запроса:
SELECT CustomerID, Country
FROM Customers
WHERE SUBSTRING(Country, 1, 1) BETWEEN 'b' AND 'g'
ORDER BY Country
BugsBunny
Дата: 15.09.2006 17:57:14
not sure about sargability but definitely would use something like these
Country BETWEEN 'b' AND 'h'
Contry like '[b-g]%'
BugsBunny
Дата: 15.09.2006 17:58:24
sorry, between is not correct
Country >= 'b' AND Country < 'h'
pyroman69
Дата: 15.09.2006 18:02:23
Нее, мы по-прежднему получаем Index Scan, а мне надо Index Seek
Ray D
Дата: 15.09.2006 18:04:30
ну тогда может план покажете, и индекс, по которому вы хотите чтобы seek был
pyroman69
Дата: 15.09.2006 18:08:03
Конкретнее, какие данные Вас интересуют?
pyroman69
Дата: 15.09.2006 18:13:39
это запрос по станд. БД Northwind по табл. Customers
Ray D
Дата: 15.09.2006 18:15:52
к сожалению у меня сейчас нет этой БД. вы чего сделать-то хотите? чтобы в плане seek появился?
ChA
Дата: 15.09.2006 18:22:26
pyroman69 |
это запрос по станд. БД Northwind по табл. Customers |
И где там индекс по полю Country ? Вы его делали ?
Гавриленко Сергей Алексеевич
Дата: 15.09.2006 21:38:56
Вычисляемую колонку по SUBSTRING(Country, 1, 1), далее индекс по SUBSTRING(Country, 1, 1), Country, CustomerID.