Положение:
Я новичок в этом, но только что понял, как создавать табличные функции и хранимые процедуры. Я создал несколько для клиента. Я сталкиваюсь с проблемой, когда я создал табличную функцию с параметром date. В самом запросе есть несколько CTE. Когда функция выполняется, запрос загружается навсегда, и в конце концов я должен остановить его (см. Пример ниже).
Итак, я разделил CTE на 2 основные temp
таблицы и запрос, который загружает временную таблицу. Каким-то образом это работает лучше (см. Пример ниже).
Цель:
Какие есть варианты, когда пользователю не нужно вручную запускать временные таблицы. Кроме того, пользователю должно быть легко выполнять запрос, например, хранимые процедуры или функции.
Пример:
У меня было нечто, похожее на то, что все еще продолжалось через час.
CREATE FUNCTION dbo.example
(@StartDate AS DATE)
RETURNS TABLE
AS
RETURN
WITH CTE AS
(........),
CTE2 AS (.....)
SELECT *
FROM CTE2 ...
JOINS...
Итак, я создал временные таблицы, которые работали очень хорошо:
DECLARE @StartDate AS DATE = ....
SELECT * INTO #cte FROM (query) temp1
DECLARE @StartDate AS DATE = ....
SELECT * INTO #cte2 FROM (query) temp1
SELECT *
FROM #cte2....
JOIN ....
Какие у меня есть альтернативы?
Спасибо!