Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Оптимизация скриптов  [new]
Solovejs
Member

Откуда:
Сообщений: 29
Добрый день!
Существуют ряд сохраненных запросов, которые периодически прогоняются по БД. Все скрипты начинаются одинаково: из нескольких таблиц создается одна плоская таблица по определенным условиям.
declare @fdate datetime, @ldate datetime
set @fdate = '2011-01-01 00:00:00'
set @ldate = '2011-02-01 00:00:00'
select a.[Col1]
       ,b.[Col2]
into #timetable
from (
     select *
     from Table1 
     where date between @fdate and @ldate
     ) a
left join 
    (select [Col2]
    from Table2
   where  date between @fdate and @ldate
    ) b
on a.[Col5]=b.[Col1]
Этот запрос наполняет временную таблицу #timetable. Далее проводятся различные выборки (в каждом сохраненном скрипте - свои действия).
Если есть необходимость подправить где-то условие наполнения временной таблицы - нужно пересохранять все скрипты.

Вопрос: как этот стандартный блок временной таблицы убрать из всех скриптов (создать объект на сервере)? ХП или Вьюха?
Проблема еще в том, что в ХП или Вьюхе нужно оставить переменные, а параметры переменных указывать в скрипте.

Пробовал создать ХП, но не передаются данные даты:
declare @fdate datetime, @ldate datetime
set @fdate = '2011-01-01 00:00:00'
set @ldate = '2011-02-01 00:00:00'
EXEC Hprocedure
В самой ХП:
declare @fdate datetime, @ldate datetime
select a.[Col1]
       ,b.[Col2]
into #timetable
from (
     select *
     from Table1 
     where date between @fdate and @ldate
     ) a
left join 
    (select [Col2]
    from Table2
   where  date between @fdate and @ldate
    ) b
on a.[Col5]=b.[Col1]
Результат = null
7 окт 11, 14:50    [11402519]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация скриптов  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Оставляете создание таблицы через create table во всех ваших скриптах, а всю логику по ее наполнению через insert into убираете в хранимую процедуру.

Сообщение было отредактировано: 7 окт 11, 14:52
7 окт 11, 14:52    [11402536]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация скриптов  [new]
Solovejs
Member

Откуда:
Сообщений: 29
Проблема в том, что в логике выборки постоянно меняются даты.
Как параметр переменной указать в скрипте, чтобы он передавался в хранимку?
7 окт 11, 15:32    [11402940]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация скриптов  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Solovejs
Проблема в том, что в логике выборки постоянно меняются даты.
Как параметр переменной указать в скрипте, чтобы он передавался в хранимку?
Параметрами передавайте.
7 окт 11, 15:36    [11402974]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить