У меня есть запрос (упрощенный), который вычисляет C
:Хранить результаты запроса или использовать вложенные запросы
SELECT A + B AS C FROM Foo
запрос возвращает 0,5 миллиона строк.
Мне нужно выбрать строки, где C < 0.3. Для этого я вставить результаты во временную таблицу #Bar
INSERT INTO #Bar
SELECT A + B AS C FROM Foo
И применить условие
SELECT *
FROM #Bar
WHERE C < 0.3
В соответствии с планом выполнения Table Insert
стоит 86%. Есть ли лучший способ получить C < 0.3
? Я пробовал вложенный запрос, и это то же самое.
Не можете ли вы использовать предложение where, «WHERE A + B <0.3»? – Arvo
Вы не можете просто посмотреть проценты плана выполнения (тем более, что вы сравниваете чтение с записью). Все это ** ** составляет 100%, поэтому очень вероятно, что одна часть * будет стоить дороже, чем другая часть плана. Это относительно, и говорит вам ** очень мало ** о фактическом времени выполнения этой части запроса/партии. Вы должны посмотреть всю представленную вам информацию. – alroc
Ну, A + B на самом деле является CASE с 6 большими формулами – hidarikani