В настоящее время мы изучаем нагрузку на наш сервер SQL и ищем способы ее снижения. Во время обучения в средней школе мне всегда говорили, что с точки зрения производительности дешевле заставить SQL Server работать. Но так ли это?
Вот пример:
SELECT ord_no FROM oelinhst_sql
Возвращает 783119 записей за 14 секунд. Поле имеет значение char(8)
, но все наши порядковые номера состоят из шести цифр, поэтому каждый из них содержит два пустых символа. Обычно мы обрезаем это поле, поэтому я запустил следующий тест:
SELECT LTRIM(ord_no) FROM oelinhst_sql
Это вернуло 783119 записей за 13 секунд. Я также попробовал еще один тест:
SELECT LTRIM(RTRIM(ord_no)) FROM oelinhst_sql
С правой стороны нечего обрезать, но я пытался выяснить, были ли какие-то издержки в простом акте вызова функции, но он все равно вернулся через 13 секунд.
Мой менеджер говорил о переносе таких вещей, как обрезка строк из SQL в исходный код, но результаты теста показывают обратное. Мой менеджер также говорит, что где-то слышал, что использование функций SQL означает, что индексы не будут использоваться. Есть ли в этом правда?