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

Откуда: Київ
Сообщений: 10428
Делаю эксперименты...
Много ограничений на процедуры, которые могут быть скомпилированы.
Каков смысл в такой компиляции: производительность, безопасность ?...
22 окт 13, 12:24    [15013594]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
смысл компиляции
Guest
Winnipuh
Делаю эксперименты...
Много ограничений на процедуры, которые могут быть скомпилированы.
Каков смысл в такой компиляции: производительность, безопасность ?...

производительность, как уверяет MS
22 окт 13, 12:28    [15013642]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
kalimba
Member

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

Только производительность (копмпилируется в чистый C).
22 окт 13, 13:34    [15014348]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
kalimba
Winnipuh,

Только производительность (копмпилируется в чистый C).


и это одновременно с заявлением, что расширенные процедуры не будут поддерживаться в следующей версии
22 окт 13, 13:47    [15014506]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
смысл компиляции
Guest
Winnipuh
kalimba
Winnipuh,

Только производительность (копмпилируется в чистый C).


и это одновременно с заявлением, что расширенные процедуры не будут поддерживаться в следующей версии

да ладно...

а тынцу можно?
22 окт 13, 14:12    [15014774]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
смысл компиляции
Guest
смысл компиляции
Winnipuh
пропущено...


и это одновременно с заявлением, что расширенные процедуры не будут поддерживаться в следующей версии

да ладно...

а тынцу можно?

тьфу, это ж про extended sp, я почему-то про сборки подумал.
22 окт 13, 14:15    [15014794]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
смысл компиляции
Winnipuh
пропущено...


и это одновременно с заявлением, что расширенные процедуры не будут поддерживаться в следующей версии

да ладно...

а тынцу можно?


ну, не гарантировано в следущей, но все-таки ;-)

http://msdn.microsoft.com/en-us/library/ms143729(v=sql.120).aspx
22 окт 13, 14:15    [15014802]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
Crimean
Member

Откуда:
Сообщений: 13147
если я не путаю, то "натив" нужен (и вообще возможен) для ин-мемори ака хекатон. и там 3 вагона ограничений. и "компилируется" - да - но не в сишку
22 окт 13, 16:04    [15015696]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
kalimba
Member

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

В обычных SP (ну и в батче разумеется) можно будет работать и с обычными таблицами и с in-memory вместе. А нативные только для in-memory таблиц. И, да, компилируется именно в C (без плюсов), то есть планы вообще никак нельзя будет получить.
22 окт 13, 16:09    [15015734]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31970
Crimean
и "компилируется" - да - но не в сишку
Как раз в "сишку", исходники ХП можно даже в папочках сервера посмотреть. И навероное поправить? :-)

Ограничений действительно много.
22 окт 13, 16:26    [15015909]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
alexeyvg
Crimean
и "компилируется" - да - но не в сишку
Как раз в "сишку", исходники ХП можно даже в папочках сервера посмотреть. И навероное поправить? :-)

Ограничений действительно много.


подозрительно это :)

почему бы не в SQLCLR, который сами же МС рекомендуют...
22 окт 13, 16:31    [15015972]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
Crimean
Member

Откуда:
Сообщений: 13147
ну значит недосмотрел. я по анонсу очень загорелся, но из-за дичайших ограничений даже близко натянуть на свои задачи не смог. жду когда чуть расширят рамки. задачи есть под in-memory, не так много, но есть и прям "букварные". но - ограничения..
вот и не копал глубже :)
22 окт 13, 16:39    [15016059]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
kalimba
Member

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

Дык у C производительность лучше же... Здесь упор делается именно на скорость. Да и задачи у SQLCLR и нативных разные все-таки, да и нативные процедурки пишутся на T-SQL, а не на C напрямую : )

Crimean,

Было бы классно после выхода RTM создать топик и обсуждать для чего нашли применение in-memory) Я пока у себя вижу вариант как для стейджинга (в in-memory можно делать bulk insert).
22 окт 13, 16:45    [15016133]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31970
Crimean
ну значит недосмотрел. я по анонсу очень загорелся, но из-за дичайших ограничений даже близко натянуть на свои задачи не смог. жду когда чуть расширят рамки. задачи есть под in-memory, не так много, но есть и прям "букварные". но - ограничения..
вот и не копал глубже :)
Несколько дней назад был семинар, рассказывали про Хекатон.

Но в общем ограничения большие, отзывы от реального повышения производительности очень разные - от 20% до 20 раз :-)

Так что надо продолжать изучать.
Winnipuh
подозрительно это :)

почему бы не в SQLCLR, который сами же МС рекомендуют...
SQLCLR - это не более чем просто прога на C#. Таковые можео было писать немедленно после появления C#, не нужно было ждать SQLCLR :-)

SQLCLR - это просто очередной хостинг для .NET машины, плюс новый провайдер доступа, плюс удобный доступ изнутри T-SQL

А Хекатон - это не только нативный код, который пишется на T-SQL (но с ограничениями), но и новый In-Memory Database Engine для данных - с ещё более огромными ограничениями, но намного более быстрый в определённых случаях.
22 окт 13, 16:48    [15016168]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
kalimba
Winnipuh,

Дык у C производительность лучше же... Здесь упор делается именно на скорость. Да и задачи у SQLCLR и нативных разные все-таки, да и нативные процедурки пишутся на T-SQL, а не на C напрямую : )

Crimean,

Было бы классно после выхода RTM создать топик и обсуждать для чего нашли применение in-memory) Я пока у себя вижу вариант как для стейджинга (в in-memory можно делать bulk insert).


хмм..
22 окт 13, 16:49    [15016175]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
alexeyvg
Crimean
ну значит недосмотрел. я по анонсу очень загорелся, но из-за дичайших ограничений даже близко натянуть на свои задачи не смог. жду когда чуть расширят рамки. задачи есть под in-memory, не так много, но есть и прям "букварные". но - ограничения..
вот и не копал глубже :)
Несколько дней назад был семинар, рассказывали про Хекатон.

Но в общем ограничения большие, отзывы от реального повышения производительности очень разные - от 20% до 20 раз :-)

Так что надо продолжать изучать.
Winnipuh
подозрительно это :)

почему бы не в SQLCLR, который сами же МС рекомендуют...
SQLCLR - это не более чем просто прога на C#. Таковые можео было писать немедленно после появления C#, не нужно было ждать SQLCLR :-)

SQLCLR - это просто очередной хостинг для .NET машины, плюс новый провайдер доступа, плюс удобный доступ изнутри T-SQL

А Хекатон - это не только нативный код, который пишется на T-SQL (но с ограничениями), но и новый In-Memory Database Engine для данных - с ещё более огромными ограничениями, но намного более быстрый в определённых случаях.


ну так MS рекомендует вместо extended proc использовать SQLCLR, т.е. когда уберут возможность писать на с++ расширенные процедуры надо писать на .NET, но тут же сами делают компиляцию в с, поскольку прозводительность лучше.

Шаг вперед, два назад (ц, Ильич)
22 окт 13, 16:58    [15016271]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31970
Crimean
вот и не копал глубже :)
Вот кстати запись семинара, если найдётся часик времени...

Обзор технологии In-Memory OLTP (Hekaton) в SQL Server 2014 CTP1, Сергей Олонцев (60 мин.)
22 окт 13, 17:07    [15016332]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
SandalTree
Member

Откуда: Перехлёсток восьми батог
Сообщений: 28146
kalimba
Winnipuh,

Только производительность (копмпилируется в чистый C).
Подтверждаю.

Мало того, по заявлению разработчиков Хекатона в коде абсолютно не используются функции и всё делается через GOTO (я так понимаю - прощай ООП).

Не буду утверждать наверняка, но эти процедуры всегда демонстрировались вкупе с in-memory tables, поэтому нет полной уверенности что они будут работать так-же быстро (или вообще будут работать) с обычными таблицами.
22 окт 13, 17:07    [15016336]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31970
Winnipuh
ну так MS рекомендует вместо extended proc использовать SQLCLR, т.е. когда уберут возможность писать на с++ расширенные процедуры надо писать на .NET, но тут же сами делают компиляцию в с, поскольку прозводительность лучше.

Шаг вперед, два назад (ц, Ильич)
А, в смысле, почему компилится не на .NET, а на с?

Ну, разработка на .NET даёт большую переносимость, защиту от ошибок и т.п., но тут же не дают пользователям писать на С, пользователь пишет на T-SQL, а это уже компилится в нативные коды. Призыв к разработчикам переходить на .NET не исключает нативные коды внутри системных приложений, по крайней мере пока...
22 окт 13, 17:10    [15016353]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31970
SandalTree
Не буду утверждать наверняка, но эти процедуры всегда демонстрировались вкупе с in-memory tables, поэтому нет полной уверенности что они будут работать так-же быстро (или вообще будут работать) с обычными таблицами.
С обычными будет выйгрыш по control-flow, то есть циклы, преобразования строк и т.п.
В принципе тоже должно быть немало.
22 окт 13, 17:11    [15016360]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
Crimean
Member

Откуда:
Сообщений: 13147
Winnipuh
MS рекомендует вместо extended proc использовать SQLCLR


оно-то да, но опять кучу возможностей порезали. начиная от типов данных и заканчивая произвольным числом параметров
я вот не могу все написанное на c/c++ перенести в CLR, тупо технические ограничения

kalimba,

у меня есть ряд задач которые сводятся к обработке компактной группы потенциально несвязанных с остальной базой данных
ну или несложно отвязываемых данных. абстрактно? :) попробую на примерах

скажем, что-то типа обработки "правил". запросы такого рода по мере расширения и углубления "правил" становятся сканирующими при почти любой разумной (если совсем уже не идти на жесткие принципы) организации хранения данных. а самих правил (кроме совсем уже упоротых ситуаций), скажем, до 100 000. то есть как бы и не много, но для потенциальных сканов уже за гранью добра и зла

второй, еще лучший пример - календари, мать их. все сводится к ползанью по достаточно широкой табличке, в которой как PK работает тупо дата + хранится хренова туча предрасчитанных (и редко меняемых) полей типа номер рабочего дня в месяце, день недели и т.д. и т.п. чтобы после не тратить время на эти расчеты при решении конкретных прикладных задач. алгоритмы вошканья по этой таблице валяются компактной группой объектов и им прямой путь в InMemory!
22 окт 13, 17:14    [15016371]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
SandalTree
Member

Откуда: Перехлёсток восьми батог
Сообщений: 28146
Вот смотрите видео с Саммита 2013 (с 27-й минуты):
http://www.sqlpass.org/summit/2013/PASStv.aspx?watch=aW3-0G-SEj0

David DeWitt рассказывает про Хекатон.
23 окт 13, 00:10    [15017808]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
Lepsik
Member

Откуда: glubinka
Сообщений: 4256
Crimean
Winnipuh
MS рекомендует вместо extended proc использовать SQLCLR


оно-то да, но опять кучу возможностей порезали. начиная от типов данных и заканчивая произвольным числом параметров
я вот не могу все написанное на c/c++ перенести в CLR, тупо технические ограничения



нет там ограничений - пишите на C++/CLi - там вызов кода С++ как родной.

Уже почти написал статью для CodeProject как это юзать.
23 окт 13, 00:56    [15017879]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Lepsik
Crimean
пропущено...


оно-то да, но опять кучу возможностей порезали. начиная от типов данных и заканчивая произвольным числом параметров
я вот не могу все написанное на c/c++ перенести в CLR, тупо технические ограничения



нет там ограничений - пишите на C++/CLi - там вызов кода С++ как родной.

Уже почти написал статью для CodeProject как это юзать.


ограничения есть судя по описанию, не всякие ассембли можно грузить из-под SQLCLR.. или не?
23 окт 13, 09:22    [15018260]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны Natively Compiled Procedures?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Lepsik
Crimean
пропущено...


оно-то да, но опять кучу возможностей порезали. начиная от типов данных и заканчивая произвольным числом параметров
я вот не могу все написанное на c/c++ перенести в CLR, тупо технические ограничения



нет там ограничений - пишите на C++/CLi - там вызов кода С++ как родной.

Уже почти написал статью для CodeProject как это юзать.


ссылку не забудьте дать ;-)
23 окт 13, 09:34    [15018308]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить