Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с выбаром реализации запроса, Много данных, слишком много данных 
:(
    Опции темы
SanSTR
Дата 11.12.2012, 05:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 27.9.2011

Репутация: нет
Всего: нет



День добрый уважаемые форумчане. Помогите пожалуйста разабраться в реализации сложного запроса.
Если по сути, то возникла проблема с подсчетами данных, а вернее со временем затрачиваемым на данную операцию:
На данный момент имеется запрос вида:
Код

declare @dc1 int, @dc2 int, @df int;
set @dc1='30'
set @dc2='13'
set @df='7'

Select S_ID_Card, Count (*)
From (
    Rep_Main_1 as S_Rep_Main
    Inner Join (
            Select ID_Card as S_ID_Card
            From Rep_Main_1
            Where paymentdate >= '2012-11-01 04:00:00.000' and paymentdate < '2012-12-01 04:00:00.000'
            )Table1
    On S_Rep_Main.ID_Card=Table1.S_ID_Card
)
Where (CodeTariff=@dc1 or CodeTariff=@dc2) and finalcost=@df
group by  S_ID_Card

где @dc1, @dc2, @df - подставляется еще много раз с разными параметрами:
Код

--(CodeTariff=30 or CodeTariff=13) and finalcost=1
--CodeTariff=20 and finalcost=3
--CodeTariff=20 and finalcost=5    
--CodeTariff=20 and (finalcost=3 or finalcost=5)
--CodeTariff=21 and finalcost=7
--CodeTariff=21 and finalcost=8
--CodeTariff=21 and (finalcost=7 or finalcost=8)
--CodeTariff=29 and finalcost=1
--CodeTariff=22 and finalcost=5
--CodeTariff=23 and finalcost=3
--CodeTariff=23 and finalcost=5
--CodeTariff=23 and (finalcost=3 or finalcost=5)
--CodeTariff=24 and finalcost>=5
--CodeTariff=25
--CodeTariff=28 and finalcost=3
--CodeTariff=28 and finalcost=5
--CodeTariff=28 and (finalcost=3 or finalcost=5)
--(CodeTariff=18 or CodeTariff=33)
--CodeTariff is null and finalcost<>10 and employee is null
--CodeTariff is null and finalcost=10 and employee is null


таким образом после всех этих операций я получаю кучу таблиц в каждой из которых я суммирую столбец count (*) и записываю количество получившихся строк.... 
в целом по времени на все уходит около 4х часов (но это пока скоро параметров на выборку добавится еще столько же) и плюс требуется не прерывное присутствие, а хотелось бы автоматизировать весь этот процесс.
как то так... посоветуйте что нить ))) пробывал через РепортингСервис, доло, долго думает и выкидывает на первом же запросе с ошибкой превышения ожидания от сервера.

PM MAIL ICQ   Вверх
Akina
Дата 11.12.2012, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



1) Преобразовать условие в 
Код

Where (CodeTariff=@dc1 and finalcost=@df) or (CodeTariff=@dc2 and finalcost=@df)

2) Построить индекс (CodeTariff, finalcost)

Это уже позволит ускорить процесс.

Но более разумно задаться вопросом - а за каким хреном нужно обрабатывать каждую группу параметров отдельно? почему не слить эти наборы в таблицу и не обработать всё сразу?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0412 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.