Мы с коллегой пытаемся настроить очень простой запрос. Он сказал, что где-то читал, что использование более низких значений по сравнению с lcase может повлиять на производительность сервера, и что один метод более эффективен, чем другой, но мы не можем найти статью, и я подумал, что я хотел бы спросить вас здесь о том, что вы думаете. Должны ли мы тратить время на поиски других возможностей, чтобы настроить производительность?
Coldfusion 8 Enterprise
MS SQL Server 2000
Набор записей: 500 000+ записей
Оригинальный запрос:
select last_name lname
from phone
where uid = <cfqueryparam value="#attributes.email#" cfsqltype="cf_sql_varchar" maxlength="50">
Вариант A
select last_name lname
from phone
where lower(uid) = <cfqueryparam value="#attributes.email#" cfsqltype="cf_sql_varchar" maxlength="50">
Вариант B
select last_name lname
from phone
where uid = <cfqueryparam value="#lcase(attributes.email)#" cfsqltype="cf_sql_varchar" maxlength="50">
Вариант C
select last_name lname
from phone
where uid = lower(<cfqueryparam value="#attributes.email#" cfsqltype="cf_sql_varchar" maxlength="50">)
База данных проиндексирована и содержит около 500 000 записей. Даже если это простой запрос, мы повторяем это примерно 150 раз, поэтому все, что мы можем сделать, чтобы сбрить секунду или две, поможет.