Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 EXECUTE -- in memory table--OLTP Procedure  [new]
Samvel13e
Member

Откуда:
Сообщений: 20
добрый день

как я могу использовать такой синтаксис в in memory procedure

declare @pathToBase nvarchar(55) = server.dbname
declare @sql nvarchar(255)
set @sql='select (max(archive_last_date) + 1) from ' + @pathToBase + '.dbo.[table]'

execute (@sql)


The EXECUTE statement in natively compiled modules must use an object name.
Variables and quoted identifiers are not supported.
7 ноя 18, 11:22    [21726325]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE -- in memory table--OLTP Procedure  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
https://docs.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/unsupported-sql-server-features-for-in-memory-oltp?view=sql-server-2017
7 ноя 18, 11:36    [21726348]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE -- in memory table--OLTP Procedure  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7407
Samvel13e,

сервер должен иметь определенность на момент сборки, а у Вас вычисляемое выражение. То, что уже скомпилировано в машинный код, не может быть пересобрано "на лету", как это делают интерпретаторы.
7 ноя 18, 13:01    [21726626]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE -- in memory table--OLTP Procedure  [new]
Samvel13e
Member

Откуда:
Сообщений: 20
Владислав Колосов,
хорошо , спасибо
но что и как делать, если запрос собирается динамически? как решить эту проблему ?
7 ноя 18, 13:11    [21726653]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE -- in memory table--OLTP Procedure  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30825
Samvel13e
но что и как делать, если запрос собирается динамически? как решить эту проблему ?
Не указывать процедуру как in memory
7 ноя 18, 13:38    [21726732]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE -- in memory table--OLTP Procedure  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7407
Samvel13e,

подумать, как использовать другие средства сбора данных, реорганизовать архитектуру хранения. Существует Integration Services, Change Data Capture, репликация.
7 ноя 18, 13:38    [21726733]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE -- in memory table--OLTP Procedure  [new]
Samvel13e
Member

Откуда:
Сообщений: 20
alexeyvg,

если процедуру не перенести в память будет еще хуже, если с диска запрос работает 2 секунд , то с паmети работает 8 секунд , ответ 600 строк, по этому хатель перенести процедуры в память
7 ноя 18, 14:08    [21726806]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE -- in memory table--OLTP Procedure  [new]
Samvel13e
Member

Откуда:
Сообщений: 20
спасибо большое за отзывы,

надо посмотреть стоит ли перенести таблицу в памет а процедуры нет, реорганизовать архитектуру хранения и нас вряли будут
7 ноя 18, 14:12    [21726817]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE -- in memory table--OLTP Procedure  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4395
Samvel13e
спасибо большое за отзывы,

надо посмотреть стоит ли перенести таблицу в памет а процедуры нет, реорганизовать архитектуру хранения и нас вряли будут



В natively compiled можно циферки погонять, остальные операции, в частности строковые, там не реализованы или не особо круто реализованы.
7 ноя 18, 16:13    [21727058]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE -- in memory table--OLTP Procedure  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30825
Samvel13e
надо посмотреть стоит ли перенести таблицу в памет а процедуры нет
Да, речь именно о переносе процедуры.
Если там нет именно сложных расчётов (а не сложных выборок данных), и она не вызывается 100500 раз в секунду, то разницы может и не быть.
7 ноя 18, 16:18    [21727066]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить