Your SlideShare is downloading. ×
Sql server clr integration
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Sql server clr integration

569

Published on

Sql server clr integration by Oleksiy Davidich

Sql server clr integration by Oleksiy Davidich

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

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
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
  • Transcript

    • 1. Как подружить C# и T-SQL Алексей Давидич Software Engineer M. C. Dean
    • 2.  Необходимость появления SQL CLR Сравнение T-SQL и C# Вопросы производительность Возможности SQL CLR
    • 3.  T-SQL не является оптимальным языком программирования для ряда задач
    • 4.  Улучшенная парадигма программирования Упрощённая разработка
    • 5.  Возможность получить более производительные и гибкие решения
    • 6.  Механизм Code Access Security (CAS)
    • 7. C# T-SQL Сложные вычисления  Прямой доступ к Работа со строками данным Ветвистая логика  Большие объёмы Работа с RegEx данных Шифрование  Отсутствие сложной Прямой доступ к логики файловой системе …
    • 8. SQL Query Compiler MSIL JIT NativeExecution Plan CLR HOST BRIDGE
    • 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. sp_configure show advanced options, 1;GORECONFIGURE;GOsp_configure clr enabled, 1;GORECONFIGURE;GO
    • 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. 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. !!! 227 раз быстрее !!!
    • 14.  Новый механизм, на порядок превосходящий раннюю реализацию в extended store procedure. Возвращает IEnumerable, подключаемый напрямую к плану запроса Уменьшаем время доступа Снижает накладные издержки расхода памяти
    • 15.  TVP (in & out) не применимы при использования контекстного соединения Update, Insert & Delete запрещены CLR TVF не поддерживают constraints и индексы уникальности CLR TVF не могут вернуть таблицу с колонками типа Timestamp или non- unicode текст
    • 16.  SqlContext – предоставляет доступ к другим расширениям, а также некоторую информацию о контексте исполнения  SqlPipe - для возврата табличных данных и сообщений клиенту  SqlTriggerContext - представляет информацию о контексте в котором срабатывает триггер SqlDataRecord - для возврата динамически конфигурируемых наборов данных из хранимой процедуры
    • 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. Спасибо!

    ×