У меня есть серия запросов T-SQL, которые я использую, которые выполняются очень медленно. Я подозреваю, что одна часть запроса вызывает некоторые проблемы - это серия приведений, которые я должен выполнить для них.
Это проблема. Я должен объединить 4 столбца вместе как nvarchar / varchar, поскольку их комбинация образует (полу) -уникальный ключ для записи в другой таблице (ужасная идея, которую я знаю, но я застрял с ней).
Четыре столбца:
t_orno, t_reno, t_pono, t_srnb: все столбцы INT без индексов.
То, как я это делал, выглядит так:
Cast(t_orno AS nvarchar(10)) + '-' + Cast(t_reno as nvarchar(10)) +
'-' + Cast(t_pono as nvarchar(5)) + '-' + Cast(t_srnb as nvarchar(5))
К сожалению, я застрял с необходимостью объединить эти столбцы вместе. Есть ли лучший способ сделать это? Запросы должны быть более эффективными, и должен быть лучший способ, чем приведение всех четырех индивидуально?
Предположим, что база данных полностью неизменна - что, к сожалению, это ... (не хочу вдаваться в это ..)
Спасибо за вашу помощь.
РЕДАКТИРОВАТЬ: В соответствии с запросом дополнительной информации о таблицах:
Обе запрашиваемые таблицы содержат только один индекс, и он находится в столбце PK. Снова обратите внимание, что в этих таблицах ничего нельзя добавить / изменить.
Присоединяемая таблица содержит комбинацию этих четырех столбцов:
BaanID> nvarchar, без индекса.