Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Увеличение длительности запроса при указании сервера.  [new]
gelnor
Member

Откуда:
Сообщений: 28
SELECT
[Item No_],[Variant Code]
FROM
[DCRussia].dbo.[БНС ЦС$Item Ledger Entry]
GROUP BY
[Item No_],[Variant Code]

SELECT
[Item No_],[Variant Code]
FROM
[bak-nvs1].[DCRussia].dbo.[БНС ЦС$Item Ledger Entry]
GROUP BY
[Item No_],[Variant Code]

Планы одинаковые и выполняется одинаково быстро. Время скачет только на больших запросах.

ЭТОТ БЫСТРО около 1 секунды:
select
a.[No_],
a.[Variant Code],
a.PRFQuantity ,
a.Category,
a.[Location Code],
a.[Maximum Inventory],
isnull(b.StoreQty,0) as StoreQty,
c.[Store Priority] as StorePriority,
0,
case when isnull(b.StoreQty,0)=0 then 2 else 9 end,
0,
0,
Brand,
0
from
(select a.[No_],a.[Variant Code],a.PRFQuantity ,a.Category,b.[Location Code],b.[Maximum Inventory],Brand
from
(SELECT
[Item No_] as [No_],[Variant Code],SUM([Quantity]) as PRFQuantity ,max([Item Category Code]) as Category,max([Brand Code]) as Brand
FROM
[DCRussia].dbo.[PRF Line2]
WHERE ([PRF No_]='BNS_UPR-PRF-007510')
GROUP BY [PRF No_],[Item No_],[Variant Code]) a
left join [Stockkeeping Unit] b on a.[No_]=b.[Item No_] and a.[Variant Code]=b.[Variant Code]
)a
left join (
select sum(isnull(a.[StoreQty],0)) as StoreQty,[Item No_],[Variant Code],Store
from
(SELECT
[Item No_],[Variant Code],case when substring([Location Code],len([Location Code])-1,2)='_T' then substring([Location Code],1,len([Location Code])-2) else [Location Code] end Store,isnull(SUM(Quantity),0) as StoreQty
FROM
[DCRussia].dbo.[БНС ЦС$Item Ledger Entry]
GROUP BY [Item No_],[Variant Code],case when substring([Location Code],len([Location Code])-1,2)='_T' then substring([Location Code],1,len([Location Code])-2) else [Location Code] end
union all
select
[Item No_],[Variant Code],[Customer Code],sum(isnull(Quantity,0))as Quantity
from [bak-nvs1].[DCRussia].dbo.[БНС ЦС$Delivery Sort Reservation] ds
left join [bak-nvs1].[DCRussia].dbo.[БНС ЦС$Customer Definition] cd on ds.[Customer Code]=cd.[No_]
where Status=1 and cd.[Source Type]=0
group by [Item No_],[Variant Code],[Customer Code]
) a
group by [Item No_],[Variant Code],Store
) b on a.[No_]=b.[Item No_] and a.[Variant Code]=b.[Variant Code] and a.[Location Code]=b.[Store]
left join
Store c on a.[Location Code]=c.[Location Code] and ([This is not a Store]=0 or c.[Location Code]='DCR')
where c.[Location Code] is not null


Вот этот долго:
select
a.[No_],
a.[Variant Code],
a.PRFQuantity ,
a.Category,
a.[Location Code],
a.[Maximum Inventory],
isnull(b.StoreQty,0) as StoreQty,
c.[Store Priority] as StorePriority,
0,
case when isnull(b.StoreQty,0)=0 then 2 else 9 end,
0,
0,
Brand,
0
from
(select a.[No_],a.[Variant Code],a.PRFQuantity ,a.Category,b.[Location Code],b.[Maximum Inventory],Brand
from
(SELECT
[Item No_] as [No_],[Variant Code],SUM([Quantity]) as PRFQuantity ,max([Item Category Code]) as Category,max([Brand Code]) as Brand
FROM
[DCRussia].dbo.[PRF Line2]
WHERE ([PRF No_]='BNS_UPR-PRF-007510')
GROUP BY [PRF No_],[Item No_],[Variant Code]) a
left join [Stockkeeping Unit] b on a.[No_]=b.[Item No_] and a.[Variant Code]=b.[Variant Code]
)a
left join (
select sum(isnull(a.[StoreQty],0)) as StoreQty,[Item No_],[Variant Code],Store
from
(SELECT
[Item No_],[Variant Code],case when substring([Location Code],len([Location Code])-1,2)='_T' then substring([Location Code],1,len([Location Code])-2) else [Location Code] end Store,isnull(SUM(Quantity),0) as StoreQty
FROM
[bak-nvs1].[DCRussia].dbo.[БНС ЦС$Item Ledger Entry]
GROUP BY [Item No_],[Variant Code],case when substring([Location Code],len([Location Code])-1,2)='_T' then substring([Location Code],1,len([Location Code])-2) else [Location Code] end
union all
select
[Item No_],[Variant Code],[Customer Code],sum(isnull(Quantity,0))as Quantity
from [bak-nvs1].[DCRussia].dbo.[БНС ЦС$Delivery Sort Reservation] ds
left join [bak-nvs1].[DCRussia].dbo.[БНС ЦС$Customer Definition] cd on ds.[Customer Code]=cd.[No_]
where Status=1 and cd.[Source Type]=0
group by [Item No_],[Variant Code],[Customer Code]
) a
group by [Item No_],[Variant Code],Store
) b on a.[No_]=b.[Item No_] and a.[Variant Code]=b.[Variant Code] and a.[Location Code]=b.[Store]
left join
Store c on a.[Location Code]=c.[Location Code] and ([This is not a Store]=0 or c.[Location Code]='DCR')
where c.[Location Code] is not null
13 май 12, 19:44    [12546307]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Т.е. план долгого запроса мы не увидим?
13 май 12, 20:54    [12546609]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
gelnor
Member

Откуда:
Сообщений: 28
Он потому и долгий, что долго выполняется, вчера оставил с планом сейчас выложу.
14 май 12, 09:57    [12548125]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
gelnor
Member

Откуда:
Сообщений: 28
Планы разительно отличаются, теперь бы понять как ремоут запрос выключить.


Длинный:

К сообщению приложен файл. Размер - 59Kb
14 май 12, 10:03    [12548152]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
gelnor
Member

Откуда:
Сообщений: 28
Короткий

К сообщению приложен файл. Размер - 39Kb
14 май 12, 10:04    [12548156]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Не использовать linked-server.
14 май 12, 10:04    [12548163]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
Balbidon
Member

Откуда: Donetsk->Emerald City
Сообщений: 358
А что вернет следующий запрос, выполненный на [bak-nvs1]?

SELECT @@SERVERNAME AS local_srv, * FROM OPENQUERY([bak-nvs1], 'SELECT @@SERVERNAME')
14 май 12, 10:19    [12548240]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
gelnor
Member

Откуда:
Сообщений: 28
Balbidon
А что вернет следующий запрос, выполненный на [bak-nvs1]?

SELECT @@SERVERNAME AS local_srv, * FROM OPENQUERY([bak-nvs1], 'SELECT @@SERVERNAME')


BAK-NVS1 BAK-NVS1
14 май 12, 10:37    [12548328]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
gelnor
Member

Откуда:
Сообщений: 28
Так в том-то и дело что линкед сервер не используется, разве указание сервера всегда предполагает использование линкеда. Просто скрипты генерятся динамически и в куче задач идут обращения к разным серверам, но тут все работает на локальном сервере просто с указанием сервера.
14 май 12, 10:39    [12548339]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31965
gelnor
Планы разительно отличаются, теперь бы понять как ремоут запрос выключить.
Главное - понять, почему для второго запроса из этих не было в плане Remote Query (по вашим словам):
gelnor
SELECT
[Item No_],[Variant Code]
FROM
[DCRussia].dbo.[БНС ЦС$Item Ledger Entry]
GROUP BY
[Item No_],[Variant Code]

SELECT
[Item No_],[Variant Code]
FROM
[bak-nvs1].[DCRussia].dbo.[БНС ЦС$Item Ledger Entry]
GROUP BY
[Item No_],[Variant Code]

Планы одинаковые и выполняется одинаково быстро. Время скачет только на больших запросах.
14 май 12, 11:43    [12548782]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31965
alexeyvg
gelnor
Планы разительно отличаются, теперь бы понять как ремоут запрос выключить.
Главное - понять, почему для второго запроса из этих не было в плане Remote Query (по вашим словам):
У вас в sys.servers is_data_access_enabled=1 (должно быть 0), и отсутствует запись (LOCAL), а вроде должна.

Вы покажите сначала планы для простых запросов, дествительно ли они одинаковые и без Remote Query.

Если так, то остаётся 2 варианта - баг сиквела, или вы ошиблись и делаете большие запросы не в том окошке.

А если не одинаковые, то можно попробовать пересоздать запись о локальном сервере.
14 май 12, 11:55    [12548893]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31965
Гавриленко Сергей Алексеевич
Не использовать linked-server.
Указание сервера не должно приводить к использованию linked-server и появлению Remote Query в запросе.

Этто баг либо сиквела, либо настроек.
14 май 12, 11:57    [12548913]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
alexeyvg
Гавриленко Сергей Алексеевич
Не использовать linked-server.
Указание сервера не должно приводить к использованию linked-server и появлению Remote Query в запросе.

Этто баг либо сиквела, либо настроек.
Значит, сервер не догадывается, что это не линкед-сервер.
14 май 12, 12:04    [12548954]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
gelnor
Member

Откуда:
Сообщений: 28
Коллеги обманул я вас короткие запросы выполняются быстро но планы разные.

К сообщению приложен файл. Размер - 67Kb
14 май 12, 12:10    [12548994]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
gelnor
Member

Откуда:
Сообщений: 28


К сообщению приложен файл. Размер - 83Kb
14 май 12, 12:11    [12548997]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
gelnor
Member

Откуда:
Сообщений: 28
Гавриленко Сергей Алексеевич
alexeyvg
пропущено...
Указание сервера не должно приводить к использованию linked-server и появлению Remote Query в запросе.

Этто баг либо сиквела, либо настроек.
Значит, сервер не догадывается, что это не линкед-сервер.



Но у меня даже линкед сервера нету такого [bak-nvs1]
14 май 12, 12:12    [12549006]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
select @@version вы уже показывали?
14 май 12, 12:20    [12549067]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
gelnor
Member

Откуда:
Сообщений: 28
Microsoft SQL Server 2005 - 9.00.5057.00 (X64) Mar 25 2011 13:33:31 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1)
14 май 12, 12:22    [12549072]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
gelnor
Member

Откуда:
Сообщений: 28
А попробуйте у себя план выполнения любого запроса с указанием сервера и без? Будет ремоут квери?
14 май 12, 12:44    [12549239]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31965
gelnor
Коллеги обманул я вас короткие запросы выполняются быстро но планы разные.
А я подозревал!!! :-)

gelnor
А попробуйте у себя план выполнения любого запроса с указанием сервера и без? Будет ремоут квери?
Нету ремоут квери. Но я пробую на 2008 р2

Нужен доброволец с 2005-м.

gelnor
Но у меня даже линкед сервера нету такого [bak-nvs1]
Как это, в sys.servers есть такая запись.
14 май 12, 13:05    [12549445]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
gelnor
Member

Откуда:
Сообщений: 28
А на себя наверное он всегда сам создает запись, все что sys.servers это линкед сервера?

В списке линкедов он себя не показывает?
14 май 12, 13:24    [12549654]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
Geep
Member

Откуда: Москва
Сообщений: 975
gelnor
sys.servers это линкед сервера?
нет, см. поле is_linked.
14 май 12, 13:34    [12549735]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
Geep
Member

Откуда: Москва
Сообщений: 975
Microsoft SQL Server 2005 - 9.00.5057.00 (X64)
Mar 25 2011 13:33:31
Copyright (c) 1988-2005 Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)

тоже нет ремоут квери.
14 май 12, 13:40    [12549788]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
gelnor
Member

Откуда:
Сообщений: 28
Коллеги я в шоке, совершенно случайно наткнулся. И все мои мучения только потому что в настройках я написал имя сервера с маленькой буквы. Соответственно на тестовой базе все запросы генерились с маленькими буквами и делали ремоут квери. В боевой же в настройках большие буквы, и все напрямую и ок.

Теперь осталось для очищения совести понять... Чем он думает?

К сообщению приложен файл. Размер - 70Kb
14 май 12, 13:41    [12549804]     Ответить | Цитировать Сообщить модератору
 Re: Увеличение длительности запроса при указании сервера.  [new]
gelnor
Member

Откуда:
Сообщений: 28
alexeyvg
gelnor
Коллеги обманул я вас короткие запросы выполняются быстро но планы разные.
А я подозревал!!! :-)

gelnor
А попробуйте у себя план выполнения любого запроса с указанием сервера и без? Будет ремоут квери?
Нету ремоут квери. Но я пробую на 2008 р2

Нужен доброволец с 2005-м.

gelnor
Но у меня даже линкед сервера нету такого [bak-nvs1]
Как это, в sys.servers есть такая запись.


Первый раз я не обманывал просто написал все большими буквами )))))
14 май 12, 13:47    [12549874]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить