Skip to content

Сравнение обычных представлений и индексированных

Пересказ статьи Chad Callihan. Views vs. Indexed Views


Давайте рассмотрим преимущества и недостатки представлений SQL.
Запрос к нескольким таблицам можно облегчить с помощью представлений. Запрос к единственному представлению (SELECT * FROM MyView) короче по сравнению с запросом, в котором соединяется несколько таблиц для получения результата.
Представления также можно использовать для усиления безопасности, разрешая пользователям доступ только к определенным столбцам в таблицах, определенных в представлении.

За такую гибкость приходится платить, и эта плата растет с размером ваших данных. При обращении к представлению SQL Server все еще должен извлекать данные из таблиц, упомянутых в представлении. Важно то, что происходит внутри.

Вы столкнулись с тем, что узким местом в производительности запросов оказалось представление? Рассмотрите возможность создания уникального кластеризованного индекса (а затем любых дополнительных некластеризованных индексов) на представлении для улучшения производительности. Continue reading "Сравнение обычных представлений и индексированных"

Error [IM002] [Microsoft][ODBC Driver Manager] "Data source name not found and no default driver specified" и кому доверять?

Пересказ статьи Rayis Imayev. Error [IM002] [Microsoft][ODBC Driver Manager] "Data source name not found and no default driver specified" and who do you trust?


Это очень короткий пост, просто чтобы напомнить себе, но, если вы когда-либо пытались подключиться к базе данных PostgreSQL с помощью интерфейса ODBC (знаю, что это уже звучит, как очень интересный вызов), то могли столкнуться с таким сообщением об ошибке: “ERROR [IM002] [Microsoft][ODBC Driver Manager] Источник данных не найден и не указан драйвер по умолчанию.”
Continue reading "Error [IM002] [Microsoft][ODBC Driver Manager] "Data source name not found and no default driver specified" и кому доверять?"

Как секционировать таблицы MySQL

Пересказ статьи Everett Berry. How to Partition MySQL Tables


Горизонтальное и вертикальное секционирование


Имеется два типа секционирования базы данных: вертикальное и горизонтальное

Вертикальное секционирование


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

Горизонтальное секционирование


Секционирование логически разбивает строки по нескольким таблицам. Число столбцов остается неизменным при разбиении, в то время как число строк может меняться. MySQL в настоящее время поддерживает горизонтальное секционирование. Здесь мы рассмотрим три различных вида горизонтального секционирования в MySQL. Continue reading "Как секционировать таблицы MySQL"

Функции работы со строками в SQL Server, Oracle и PostgreSQL

Пересказ статьи 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"

Как включить и отключить полнотекстовый поиск для баз данных SQL Server

Пересказ статьи 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 "Запись, которая никогда не существовала (как зафиксированная строка)"

Встраивание UDF и агрегация строк

Пересказ статьи Erik Darling. UDF Inlining And String Aggregations


Четыре врага


Фактически данная статья состоит их четырех постов. Возможно, пяти. Вот основные темы:

  • STRING_AGG не может быть встроен, если это UDF.

  • Получить значения DISTINCT в STRING_AGG сложнее, чем это должно быть.

  • Документация по встраиванию UDF вводит в заблуждение.

  • XML PATH можно встроить в UDF.


Начнем сверху, поскольку первые всегда наверху.
Continue reading "Встраивание UDF и агрегация строк"

Продвинутые возможности PostgreSQL: Руководство

Пересказ статьи Igor Bobriakov, Everett Berry. Advanced PostgreSQL Features: A Guide


Несмотря на растущую популярность баз данных NoSQL, реляционные базы данных все еще остаются предпочтительным выбором для многих приложений. Это связано с их развитыми запросами и надежностью.

Реляционные базы данных прекрасно себя ведут при выполнении сложных запросов и отчетов на базе данных, структура которых не изменяется часто. Реляционные базы данных с открытыми кодами, подобные MySQL и PostgreSQL, предоставляют альтернативу по цене-эффективности в качестве стабильных производственных баз данных лицензионным конкурентам типа Oracle, MSSQL и другим. Continue reading "Продвинутые возможности PostgreSQL: Руководство"