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

Откуда: С необъятных просторов нашей Родины
Сообщений: 280
Выпоняю запрос, сервак выдает

Internal Query Processor Error: The query processor could not produce a query plan. Contact your primary support provider for more information.

В чем беда, как обойти можно?


3нание бывает двух видов. Мы сами знаем предмет - или же знаем, где найти о нем сведения. (©Бенджамин Франклин )
Ага, и я с ним полностью согласен! :)
18 дек 05, 13:17    [2183182]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с сервером!!!!!Помогите! Срочно!  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
Выложите сюда результат:
select @@version
и текст запроса
18 дек 05, 13:49    [2183209]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с сервером!!!!!Помогите! Срочно!  [new]
aLexx Subb
Member

Откуда: С необъятных просторов нашей Родины
Сообщений: 280
select @@version

Microsoft SQL Server 2000 - 8.00.194 (Intel X86) Aug 6 2000 00:57:48 Copyright (c) 1988-2000 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 1)

Запрос выложить нереально, там выполняется процедура вида


exec ДобВКнигуПродаж 2,0,'12.1.2005','12.1.2005'


ALTER PROCEDURE dbo.ДобВКнигуПродаж

/*Процедура добавляет в книгу продаж счеты-фактуры*/
(
@UID_Склада bigint,
@UIDs_Группы nvarchar(50),
@Дата1 datetime,
@Дата2 datetime
)
AS
declare

@errno int,
@errmsg varchar(255),
@UID_Группы bigint,
@sql nvarchar(4000)
set nocount on
set @errno=30001
select
@UID_Группы=cast(dbo.ЧастьСтр(@UIDs_Группы,1,'.') as bigint)

--begin tran
set @sql='
INSERT INTO Книга_Продаж
( UID_Группы,
UID_Продавца,
UID_Покупателя,
Дата_Документа,
Номер_Документа,
Дата_Оплаты,
Сумма_Всего,
Сумма_без_НДС_10,
Сумма_НДС_10,
Сумма_без_НДС_20,
Сумма_НДС_20,
Сумма_Без_НДС,
Примечание,
Пользователь,
Дата_Редактирования
)
SELECT
UID_Группы,
UID_Поставщика,
UID_Покупателя,
Дата,
Номер,
Дата_Оплачено,
(isnull(НДС10_От_Суммы,0)+isnull(Сумма_НДС10,0)+isnull(НДС20_От_Суммы,0)+isnull(Сумма_НДС20,0)+isnull(НДС0_От_Суммы,0))*Коэф_Оплаты,
НДС10_От_Суммы*Коэф_Оплаты,
Сумма_НДС10*Коэф_Оплаты,
НДС20_От_Суммы*Коэф_Оплаты,
Сумма_НДС20*Коэф_Оплаты,
НДС0_От_Суммы*Коэф_Оплаты,
Примечание,
SUSER_SNAME(),
GetDate()
FROM
Фактуры_Вых_Для_Книги_Продаж
WHERE
(1=dbo.ПроверкаПериода (Дата_Оплачено,@Дата1,@Дата2)) '
if @UID_Группы<>0
set @sql=@sql+'
and
(1=dbo.ПроверкаUID(UID_Группы,@UID_Группы)) '
if @UID_Склада<>0
set @sql=@sql+'
and
(1=dbo.ПроверкаUID(UID_Склада,@UID_Склада))'

exec sp_executesql
@sql,
N'
@UID_Группы bigint,
@UID_Склада bigint,
@Дата1 datetime,
@Дата2 datetime
',
@UID_Группы,
@UID_Склада,
@Дата1,
@Дата2
if @@ERROR<>0
begin
set @errmsg = 'Невозможно добавить счета-фактуры в книгу продаж. Процедура ДобвКнигуПродаж.'
goto error
end
--commit tran
return
error:
raiserror @errno @errmsg
-- rollback tran

В свою очередь преставление Фактуры_Вых_Для_Книги_Продаж
собирает данные еще из 4-х представлений.

Несмотря на всю громоздкость все было быстро добавлялось на 3-х млн записей. А тут блин облом.

Но я понял в чем дело, запрос для сервака стал тяжелым, я убрал ряд полей и вроде заработало.
18 дек 05, 14:06    [2183230]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с сервером!!!!!Помогите! Срочно!  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
Microsoft SQL Server 2000 - 8.00.194 (Intel X86)

1. Патчить до СП3

2. Избавиться в процедуре от динамики с помощью ISNULL или CASE.
18 дек 05, 14:36    [2183250]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить