7. C# T-SQL
Сложные вычисления Прямой доступ к
Работа со строками данным
Ветвистая логика Большие объёмы
Работа с RegEx данных
Шифрование Отсутствие сложной
Прямой доступ к логики
файловой системе
…
20. Новый механизм, на порядок
превосходящий раннюю реализацию в
extended store procedure.
Возвращает IEnumerable, подключаемый
напрямую к плану запроса
Уменьшаем время доступа
Снижает накладные издержки расхода
памяти
21. TVP (in & out) не применимы при
использования контекстного соединения
Update, Insert & Delete запрещены
CLR TVF не поддерживают constraints и
индексы уникальности
CLR TVF не могут вернуть таблицу с
колонками типа Timestamp или non-
unicode текст
22.
23.
24.
25.
26. SqlContext – предоставляет доступ к
другим расширениям, а также некоторую
информацию о контексте исполнения
SqlPipe - для возврата табличных данных и
сообщений клиенту
SqlTriggerContext - представляет информацию
о контексте в котором срабатывает триггер
SqlDataRecord - для возврата
динамически конфигурируемых наборов
данных из хранимой процедуры
Языки программирования .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