Я знаю, что есть лучший способ сделать то, что я пытаюсь выполнить здесь. Хотя запрос работает, я боюсь, что его производительность пострадает, поскольку набор данных применяется для роста.Настройка производительности tSQL Количество запросов (*) & подзапросы
Мне даже не нужно, чтобы кто-то переписывал то, что у меня есть, если они просто захотят указать мне в направлении темы, которую я должен изучить, я был бы очень признателен.
То, что я пытаюсь вернуть с этим запросом, - это количество записей в определенном статусе или над ним.
Заранее благодарим за вашу помощь!
SELECT (SELECT count(*) FROM TABLE1 c1 WHERE ( c1.U_KEY3 NOT LIKE 'z%' AND (c1.U_KEY1 = '' or c1.U_KEY1 IS NULL) ) ) AS 'STATUS is EMPTY' , (SELECT count(*) FROM TABLE1 c1 WHERE (c1.U_KEY3 NOT LIKE 'z%' AND LEFT(c1.U_KEY1,2) >= '70') ) AS 'STATUS > 70' , (SELECT count(*) FROM TABLE1 c1 WHERE (c1.U_KEY3 NOT LIKE 'z%' AND LEFT(c1.U_KEY1,2) >= '50') ) AS 'STATUS > 50' , (SELECT count(*) FROM TABLE1 c1 WHERE (c1.U_KEY3 NOT LIKE 'z%' AND LEFT(c1.U_KEY1,2) >= '30') ) AS 'STATUS > 30' , (SELECT count(*) FROM TABLE1 c1 WHERE (c1.U_KEY3 NOT LIKE 'z%' AND LEFT(c1.U_KEY1,2) >= '10') ) AS 'STATUS > 10'
Есть ли у вас какие-либо показатели по 'TABLE1'? Запрос может работать быстрее, чем вы думаете. –
Сколько строк в таблице? вы пытались использовать JOIN вместо подзапроса? – FLICKER
@ Исправлены поля индекса U_KEY. Сейчас всего 1200 строк в таблице, и он работает достаточно хорошо, но есть потенциал для роста до 100 000. –