Sql server clr integration

650
-1

Published on

Sql server clr integration by Oleksiy Davidich

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
650
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Языки программирования .Net Framework во многих отношениях богаче языка T-Sql, предоставляя разработчику конструкции и возможности, прежде не доступные SQL Server разработчикам.Все средства, которые мы привыкли использовать для разработки и отладки средне-уровневых (middle-tier) или клиентских приложений.
  • Во многих случаях, используя языки .NetFramework можно достигнуть лучшей производительности, чем при использовании T-SQL
  • Ядро базы данных запускает CLR среду в которой в дальнейшем исполняется управляемый код. А как известно, управляемый код использует механизм Code Access Security (CAS) для предотвращения выполнения потенциально опасного кода внутри сборок. И это даёт безопасную альтернативу расширенным хранимым процедурам (extended stored procedures) доступных в ранних версиях SQL Server.
  • Методология: постановка задачи -> реализация на T-SQL и C# -> выполнение выборки данных с использованием различных реализаций
  • Out param
  • messages , tabular results, dynamic
  • Может быть структрурой/классом и должен:реализовывать INullableиметь методы Parse и ToStringиметь конструктор без параметровне иметь перегруженных методов (кроме ctor)static члены либо read-only, либо константыбыть сериализируем или реализовывать IXmlSerializable
  • Сказать о баге с NULL RETURN_VALUE
  • Sql server clr integration

    1. 1. Как подружить C# и T-SQL Алексей Давидич Software Engineer M. C. Dean
    2. 2.  Необходимость появления SQL CLR Сравнение T-SQL и C# Вопросы производительность Возможности SQL CLR
    3. 3.  T-SQL не является оптимальным языком программирования для ряда задач
    4. 4.  Улучшенная парадигма программирования Упрощённая разработка
    5. 5.  Возможность получить более производительные и гибкие решения
    6. 6.  Механизм Code Access Security (CAS)
    7. 7. C# T-SQL Сложные вычисления  Прямой доступ к Работа со строками данным Ветвистая логика  Большие объёмы Работа с RegEx данных Шифрование  Отсутствие сложной Прямой доступ к логики файловой системе …
    8. 8. SQL Query Compiler MSIL JIT NativeExecution Plan CLR HOST BRIDGE
    9. 9.  CLR User-Defined Functions  CLR Scalar-Valued Functions  CLR Table-Valued Functions  CLR User-Defined Aggregates CLR User-Defined Types CLR Stored Procedures CLR Triggers
    10. 10. sp_configure show advanced options, 1;GORECONFIGURE;GOsp_configure clr enabled, 1;GORECONFIGURE;GO
    11. 11.  Компиляцияcsc /target:library [name].cs Загрузка сборки на серверCREATE ASSEMBLY myAssemblyFROM c:[name].dllWITH PERMISSION_SET = SAFE Создание хранимой процедурыCREATE PROCEDURE hello@i nchar(25) OUTPUTAS EXTERNAL NAME myAssembly.MyNamespace.myStoreProc
    12. 12. SQL запрос РезультатSQL Server Query Processor SQL CLR Module (Store procedure, UDFs, UDTs, UDAs, Triggers) CLR Hosting Module (.Net Framework)SQL Server Database EXTERNAL Engine _ACCESS UNSAFE SAFE Files, Native DLLs, Registry, COM DLLs Database Network
    13. 13. !!! 227 раз быстрее !!!
    14. 14.  Новый механизм, на порядок превосходящий раннюю реализацию в extended store procedure. Возвращает IEnumerable, подключаемый напрямую к плану запроса Уменьшаем время доступа Снижает накладные издержки расхода памяти
    15. 15.  TVP (in & out) не применимы при использования контекстного соединения Update, Insert & Delete запрещены CLR TVF не поддерживают constraints и индексы уникальности CLR TVF не могут вернуть таблицу с колонками типа Timestamp или non- unicode текст
    16. 16.  SqlContext – предоставляет доступ к другим расширениям, а также некоторую информацию о контексте исполнения  SqlPipe - для возврата табличных данных и сообщений клиенту  SqlTriggerContext - представляет информацию о контексте в котором срабатывает триггер SqlDataRecord - для возврата динамически конфигурируемых наборов данных из хранимой процедуры
    17. 17.  MSDN: http://msdn.microsoft.com/en- us/library/ms131102(SQL.100).aspx Cookbook (O’REILLY) : http://msdn.microsoft.com/en- us/library/orm-9780596101404-02-12.aspx MSDN Blog (Exception handling): http://blogs.msdn.com/b/sqlclr/archive/2006/ 06/29/651649.aspx
    18. 18. Спасибо!
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×