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

Откуда:
Сообщений: 2
Привет всем!

Конфиг: MSSQL 2017, windows server 2016

Имеется запрос вида:

 WITH XMLNAMESPACES (...),
    
    EFPurchaseList ( purchaseNum ) as (
    SELECT DISTINCT
    	table.fst.value('(...) [1]', 'nvarchar(max)')
    FROM table
    	CROSS APPLY table.fst.nodes('.../.[1]') nodes(setting)
    WHERE nodes.setting.value('(...) [1]', 'nvarchar(max)') = 'value'),
    
    ApplicationList (purchaseNum,   lotNum, journalNum, participantType, inn, kpp, orgn, idNumber, countryCode, countryFullName, [status]) as (
    SELECT DISTINCT
    	secondTable.fst.value('(...) [1]', 'nvarchar(max)'),
    	'1',
    	nodes.setting.value('(...) [1]', 'nvarchar(max)'),
    	nodes.setting.value('(...) [1]', 'nvarchar(max)'),
    	nodes.setting.value('(...) [1]', 'nvarchar(max)'),
    	nodes.setting.value('(...) [1]', 'nvarchar(max)'),
    	nodes.setting.value('(...) [1]', 'nvarchar(max)'),
    	nodes.setting.value('(...) [1]', 'nvarchar(max)'),
    	nodes.setting.value('(...) [1]', 'nvarchar(max)'),
    	nodes.setting.value('(...) [1]', 'nvarchar(max)'),
    	nodes.setting.value('(...) [1]', 'nvarchar(max)')
    FROM secondTable
    CROSS APPLY secondTable.fst.nodes('.../.[1]') nodes(setting)
    ),
    
    suppliersList (purchaseNumber, lotNum, journalNum, participantType, inn, kpp, ogrn, idNumber, countryCode, countryFullName, [status], pN) as (
    SELECT *
    FROM ApplicationList INNER JOIN EFPurchaseList on EFPurchaseList.purchaseNum = ApplicationList.purchaseNum)
    
    SELECT suppliersList.inn, count(suppliersList.inn) FROm suppliersList GROUP BY suppliersList.inn


* - `...` написано за место пути.

В процессе выполнения запроса вылезает ошибка:

автор
Сообщение 109, уровень 20, состояние 0, строка 0
Ошибка на транспортном уровне при получении результатов с сервера. (provider: Shared Memory Provider, error: 0 - Канал был закрыт.)



Судя по файлам трассировки, достаточно часто случаются циклы Audit logout и Audit login

Последняя часть лога перед ошибкой (картинка):

Картинка с другого сайта.

Не знаю, как лучше приложить файл лога, если это, конечно, нужно.

Как избавиться от данной ошибки и из-за чего она происходит?
30 окт 18, 12:48    [21718862]     Ответить | Цитировать Сообщить модератору
 Re: Shared Memory Provider  [new]
invm
Member

Откуда: Москва
Сообщений: 9344
LtColombo
Как избавиться от данной ошибки
Установить последний CU
30 окт 18, 12:55    [21718874]     Ответить | Цитировать Сообщить модератору
 Re: Shared Memory Provider  [new]
LtColombo
Member

Откуда:
Сообщений: 2
К сожалению, не помогло
30 окт 18, 14:25    [21718997]     Ответить | Цитировать Сообщить модератору
 Re: Shared Memory Provider  [new]
invm
Member

Откуда: Москва
Сообщений: 9344
LtColombo,

Ошибка говорит, что это внутренняя проблема при выполнении запроса, т.е. какой-то баг.
Если фиксы не помогли, то придется упрощать запрос, разбивая его на фрагменты и помещая промежуточные результаты во временные таблицы.
30 окт 18, 14:56    [21719046]     Ответить | Цитировать Сообщить модератору
 Re: Shared Memory Provider  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7753
Если память не изменяет, ошибка может появиться при достаточно большом объеме данных, превышающем размеры какого-то там буфера. В этом случае надо перейти на использование IP подключения.
30 окт 18, 18:33    [21719416]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить