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

Откуда:
Сообщений: 375
всем привет
для ежедневной проверки данных в кубиках требуется выкачивать из разных мест кучу данных по отгрузкам.
данные находятся в таблицах, разбитых по месяцам
запрос выглядит примерно так:
select Amount, Summa, Weight, DocDate
insert into #VerifycationCher
from Table_2009_01
я специально не суммирую их сразу, чтобы знать кол-во возвращенных записей (для статистики и т.п.)
во время процедуры проверки начинают тормозить запросы пользователей.
Что я делаю не так и как надо делать правильно?
8 июл 09, 12:50    [7390951]     Ответить | Цитировать Сообщить модератору
 Re: проверка данных (выборка больших объемов)  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Voice2001
Что я делаю не так и как надо делать правильно?
Откуда такой синтаксис?
Если таблицы #VerifycationCher нет, то insert уберите.
А если есть, то поменяйте select и insert местами.
8 июл 09, 12:54    [7391001]     Ответить | Цитировать Сообщить модератору
 Re: проверка данных (выборка больших объемов)  [new]
Voice2001
Member

Откуда:
Сообщений: 375
зы. Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
зызы. выкачиваю данные за 2 года. В каждой таблице Table_YYYY_MM примерно по 200-300тыс.записей (код клиента, код продукции, кол-во, вес, сумма, дата и т.п.)
8 июл 09, 12:55    [7391011]     Ответить | Цитировать Сообщить модератору
 Re: проверка данных (выборка больших объемов)  [new]
Voice2001
Member

Откуда:
Сообщений: 375
сори, очепятка конечно же
select Amount, Summa, Weight, DocDate
into #VerifycationCher
from Table_2009_01
#VerifycationCher - это временная таблица, куда все сваливается (по ней уже считаются суммы для проверки)
8 июл 09, 13:02    [7391075]     Ответить | Цитировать Сообщить модератору
 Re: проверка данных (выборка больших объемов)  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3197
До 2005 версии, конструкция select ... into накладывала какие-то особо жесткие блокировки. Создавайте таблицу заранее и используйте insert into ... select.
8 июл 09, 13:06    [7391098]     Ответить | Цитировать Сообщить модератору
 Re: проверка данных (выборка больших объемов)  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Ennor Tiegael
До 2005 версии, конструкция select ... into накладывала какие-то особо жесткие блокировки. Создавайте таблицу заранее и используйте insert into ... select.
Тут где-то говорили, что это было до 7-й версии включительно...
8 июл 09, 13:08    [7391120]     Ответить | Цитировать Сообщить модератору
 Re: проверка данных (выборка больших объемов)  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3197
А вот сейчас топикстартер и выяснит
8 июл 09, 13:10    [7391131]     Ответить | Цитировать Сообщить модератору
 Re: проверка данных (выборка больших объемов)  [new]
Voice2001
Member

Откуда:
Сообщений: 375
тормозит даже если использовать "insert into ... select Amount, ... from Table_YYYY_MM"
исправит ли проблему использование сумм?:
insert into #VerifycationCher
select SUM(Amount), SUM(Summa), SUM(Weight)
from Table_YYYY_MM
group by DocDate
чем можно проверить выигрыш?
8 июл 09, 13:38    [7391363]     Ответить | Цитировать Сообщить модератору
 Re: проверка данных (выборка больших объемов)  [new]
Voice2001
Member

Откуда:
Сообщений: 375
че-то я сегодня не в себе :)
забыл DocDate в селект добавить
8 июл 09, 13:39    [7391376]     Ответить | Цитировать Сообщить модератору
 Re: проверка данных (выборка больших объемов)  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3197
Это зависит от того, во что упирается ваш запрос - в диск или в процессор. Можете, конечно, посмотреть счетчики производительности, но я в свое время уже ходил этим путем (онлайн-агрегация) и выяснил, что ловить там нечего. Ибо для выгрузки/переливки больших объемов лучше всего подходит bcp + BULK INSERT. Попробуйте лучше с ним.
8 июл 09, 13:50    [7391471]     Ответить | Цитировать Сообщить модератору
 Re: проверка данных (выборка больших объемов)  [new]
йцу1
Guest
а смысл переливки всей таблицы во временную? неужели с базовой работать нельзя?
8 июл 09, 14:15    [7391677]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить