Пересказ статьи Chad Callihan. Views vs. Indexed Views
Давайте рассмотрим преимущества и недостатки представлений SQL.
Запрос к нескольким таблицам можно облегчить с помощью представлений. Запрос к единственному представлению (SELECT * FROM MyView) короче по сравнению с запросом, в котором соединяется несколько таблиц для получения результата.
Представления также можно использовать для усиления безопасности, разрешая пользователям доступ только к определенным столбцам в таблицах, определенных в представлении.
За такую гибкость приходится платить, и эта плата растет с размером ваших данных. При обращении к представлению SQL Server все еще должен извлекать данные из таблиц, упомянутых в представлении. Важно то, что происходит внутри.
Вы столкнулись с тем, что узким местом в производительности запросов оказалось представление? Рассмотрите возможность создания уникального кластеризованного индекса (а затем любых дополнительных некластеризованных индексов) на представлении для улучшения производительности.
Continue reading "Сравнение обычных представлений и индексированных"
Пересказ статьи Andrea Gnemmi. SQL String functions in SQL Server, Oracle and PostgreSQL
Строковые функции широко используются для манипуляции, извлечения, форматирования и поиска текста для типов данных char, nchar (unicode), varchar, nvarchar (unicode) и т.д. К сожалению, имеются некоторые отличия в строковых функциях SQL Server, Oracle и PostgreSQL, которые обсуждаются в этой статье.
Continue reading "Функции работы со строками в SQL Server, Oracle и PostgreSQL"
Пересказ статьи Manvendra Singh. How to Enable and Disable Full Text Search for SQL Server Databases
Как вы можете знать, полнотекстовый поиск включен для всех баз данных SQL Server, если компоненты полнотекстового поиска установлены для экземпляра SQL Server. Если вашим требованием является отключить функциональность полнотекстового поиска для базы данных, как сделать, чтобы при этом полнотекстовый поиск продолжал работать для других баз данных на том же экземпляре SQL Server. В этой статье мы рассмотрим как включать и выключать функцию полнотекстового поиска для отдельных баз данных SQL Server.
Continue reading "Как включить и отключить полнотекстовый поиск для баз данных SQL Server"
Пересказ статьи Alessandro Mortola. The Record That Never Existed (as a committed row)
Введение
Согласно официальной документации уровень изоляции READ COMMITTED "определяет, что операторы не могут читать данные, которые были модифицированы, но не зафиксированы другими транзакциями". Поэтому можно подумать, что запись, возвращаемая при этом уровне изоляции, существовала в зафиксированном состоянии в момент чтения.
В этой статье я собираюсь доказать, что возможны пограничные ситуации, когда прочитанные данные вообще никогда не существовали, по крайней мере, в зафиксированном состоянии.
Continue reading "Запись, которая никогда не существовала (как зафиксированная строка)"
Пересказ статьи Erik Darling. UDF Inlining And String Aggregations
Четыре врага
Фактически данная статья состоит их четырех постов. Возможно, пяти. Вот основные темы:
- STRING_AGG не может быть встроен, если это UDF.
- Получить значения DISTINCT в STRING_AGG сложнее, чем это должно быть.
- Документация по встраиванию UDF вводит в заблуждение.
- XML PATH можно встроить в UDF.
Начнем сверху, поскольку первые всегда наверху.
Continue reading "Встраивание UDF и агрегация строк"