Есть целочисленное индексированное поле со значениями 1,2,3,4,5 и т.д.
Мне нужно отсортировать их в таком порядка 10,5,1,4,2 и т.д.
Я делаю это через CASE , но сортировка происходит медленнее, чем сортировка просто по полю.
Здравствуйте, blonduser, Вы писали:
B>Мне нужно отсортировать их в таком порядка 10,5,1,4,2 и т.д.
А что в "и т.д."? Принцип остался непонятен.
B>Я делаю это через CASE , но сортировка происходит медленнее, чем сортировка просто по полю.
Насколько медленнее?
B>Есть какие нить варианты что бы ускорить это?
Есть. Например добавить еще одно поле, пронумеровать как нужно и сортировать по нему.
Здравствуйте, blonduser, Вы писали:
B>Есть какие нить варианты что бы ускорить это?
Завести новое поле, захардкодить в него "вес" строки (произвольное дробное число), сортировать по весу.
Индекс, если сортировка — узкое место.
Здравствуйте, blonduser, Вы писали:
B>Мне нужно отсортировать их в таком порядка 10,5,1,4,2 и т.д. B>Есть какие нить варианты что бы ускорить это?
Сделать постоянную или временную дополнительную таблицу для порядка сортировки с соответствием {значение, порядок сортировки}
Соединить с ней исходную таблицу и сортировать по порядку в дополнительной таблице.
На соединяемые поля в обеих таблицах сделать индексы (в дополнительной — кластерный или с добавленной второй колонкой)
Здравствуйте, vmpire, Вы писали:
V>Здравствуйте, blonduser, Вы писали:
B>>Мне нужно отсортировать их в таком порядка 10,5,1,4,2 и т.д. B>>Есть какие нить варианты что бы ускорить это? V>Сделать постоянную или временную дополнительную таблицу для порядка сортировки с соответствием {значение, порядок сортировки} V>Соединить с ней исходную таблицу и сортировать по порядку в дополнительной таблице. V>На соединяемые поля в обеих таблицах сделать индексы (в дополнительной — кластерный или с добавленной второй колонкой)
Здравствуйте, vmpire, Вы писали:
B>>Мне нужно отсортировать их в таком порядка 10,5,1,4,2 и т.д. B>>Есть какие нить варианты что бы ускорить это? V>Сделать постоянную или временную дополнительную таблицу для порядка сортировки с соответствием {значение, порядок сортировки}
Здравствуйте, seregaa, Вы писали:
S>Здравствуйте, Lexey, Вы писали:
L>>А что не индексированную вьюху?
S>Имхо решение с вьюхой на самый крайний случай. Вдруг у него в таблице всего сотня-другая записей?
Спасибо и вьюху попробую, как только руки дойдут.
Основная таблица с миллионами записей и в ней кроме всего содержится тип записи.
Типов записей меньше сотни.
В зависимости от языка тип записи нужно отсортировать по алфавиту.
Здравствуйте, blonduser, Вы писали:
B>Основная таблица с миллионами записей и в ней кроме всего содержится тип записи. B>Типов записей меньше сотни. B>В зависимости от языка тип записи нужно отсортировать по алфавиту.
Реальная задача и постановка в исходном посте как небо и земля.
Здравствуйте, Sinix, Вы писали:
B>>Есть какие нить варианты что бы ускорить это? S>Завести новое поле, захардкодить в него "вес" строки (произвольное дробное число), сортировать по весу. S>Индекс, если сортировка — узкое место.
Хочу только заметить, что индекс на ORDER BY использовать достаточно сложно, далеко не всегда получается.
Очень сильно зависит от запроса.