Skip to content

Понимание коллации уровня базы данных и влияние её изменения

Пересказ статьи Manvendra Singh. Understanding the Database Level Collation and Impact of Changing it for a Database


Когда вы разрабатываете приложение или пишете код в системе баз данных SQL, важно понимать, как будут сравниваться и сортироваться данные. Вы можете хранить ваши данные на конкретном языке, или вы можете захотеть, чтобы SQL Server различал, в каком регистре написаны данные. Microsoft в SQL Server предоставляет настройку, которая называется коллация или схема сопоставления (Collation) и отвечает за выполнение подобных требований.
Continue reading "Понимание коллации уровня базы данных и влияние её изменения"

JSON для SQL Server. Часть 1

Пересказ статьи Josip Saban. JSON for SQL Server. Part 1


За последние несколько лет JSON стал позиционироваться как стандартный формат обмена данных между службами, хотя XML все еще широко используется. В SQL Server 2016 Microsoft реализовал поддержку JSON непосредственно в ядре базы данных, и возможности манипуляции данными возрастают с каждой последующей версией.

Аббревиатура JSON расшифровывается как JavaScript Object Notation (обозначения объектов JavaScript), и она представляет независимый от языка формат открытого стандарта в удобочитаемой форме пар ключ-значение. Он часто используется в конфигурациях приложений, веб-сервисах RESTful, базах данных NoSQL типа CouchDB и MongoDB.


Continue reading "JSON для SQL Server. Часть 1"

Вы тратите половину ёмкости IDENTITY?

Пересказ статьи Steve Stedman. Are you wasting half the capacity of IDENTITY?


При создании таблицы вы можете задать IDENTITY при помощи следующего синтаксиса:

IDENTITY [ (seed , increment) ]
Например:

CREATE TABLE [dbo].[TestIntIdentity](
[cpuID] [int] IDENTITY(1,1) NOT NULL,
[logTime] [datetime] NOT NULL DEFAULT GetDate()
) ON [PRIMARY];

Continue reading "Вы тратите половину ёмкости IDENTITY?"

Архитектура журнала транзакций SQL Server

Пересказ статьи Greg Larsen. SQL Server transaction log architecture


Журнал транзакций - это файл, который имеет каждая база данных SQL Server. Его можно представить как журнал активности обновлений, которые происходят в базе данных. Журнал транзакций используется для поддержания целостности базы данных. Хранящаяся информация о транзакции может быть использована для её отката, если по каким-то причинам он не была успешно зафиксирована или произошел системный сбой. В этой статье я рассмотрю архитектуру журнала транзакций.


Continue reading "Архитектура журнала транзакций SQL Server"

Почему запросы к связанным серверам настолько плохи?

Пересказ статьи Brent Ozar. Why Are Linked Server Queries So Bad?


Помните, когда вы в школе были в кого-то были влюблены? Вы могли бы написать записку с просьбой сделать вас валентинкой и попросить общего друга передать эту записку.

Взрослый эквивалент этого - запросы к связанному серверу.

Continue reading "Почему запросы к связанным серверам настолько плохи?"

Присоединение базы данных без файла журнала транзакций

Пересказ статьи Chad Callihan. Attach Database Without Transaction Log File


Что если вы перемещаете базу данных на новый сервер, отсоединяя (detach) и снова присоединяя файлы базы данных, и кто-то (конечно, не вы) потерял файл журнала? Что если требуется перевести старую базу данных в режим онлайн, но к вам пришел человек, у которого имеется только mdf файл? Можно все же присоединить базу данных в подобных случаях? Давайте это выясним.

Continue reading "Присоединение базы данных без файла журнала транзакций"

Установка полнотекстового поиска с помощью T-SQL

Пересказ статьи Steve Jones. Setup Full-Text using T-SQL


Предыдущая статья была посвящена установке полнотекстового поиска (FTS) и индексов в SSMS. Здесь рассматривается эквивалент на T-SQL.



Continue reading "Установка полнотекстового поиска с помощью T-SQL"

Установка полнотекстового индекса

Пересказ статьи Steve Jones. Setting up a Full Text Index


Недавно мне встретился вопрос относительно полнотекстового поиска. Я знал ответ, но, чтобы протестировать некий код, я переустановил индекс, что заняло порядка минуты, и я решил написать об этом. Эта публикация посвящена основам установки индекса.
Continue reading "Установка полнотекстового индекса"

Обзор оператора sp_helptext

Пересказ статьи Nisarg Upadhyay. An overview of the sp_helptext statement


В этой статье вы узнаете об операторе (хранимой процедуре) sp_helptext. Я покажу различные примеры его использования и пару альтернатив.

Оператор sp_helptext используется для просмотра определения следующих объектов базы данных.


Continue reading "Обзор оператора sp_helptext"

Что такое материализованное представление, и зачем его использовать?

Пересказ статьи Nahla Davies. What is a Materialized View and Why Should you Use It?


По мере роста объема данных все больше разработчиков обращаются к материализованным представлениям для обработки запросов. Этот подход имеет много возможностей.

В этой статье рассматривается понятие материализованного представления, его условий и тех преимуществ, которое оно дает пользователям. Вы также поймете разницу между представлением и материализованным представлением, и как получить выгоду от использования материализованного представления, если вы этого еще не делали.
Continue reading "Что такое материализованное представление, и зачем его использовать?"

Еще больше удовольствия с арифметикой DATETIME!

Пересказ статьи Eitan Blumin. Even more fun with DATETIME arithmetics!


В одной из предыдущих публикаций я привел способ использования "математики" для манипуляции со значениями типа datetime с целью эффективной генерации, вычислений и отображения интервалов (т.е. разницы между двумя значениями datetime). Они, главным образом, работают с операторами сложения и вычитания (+, -).
Continue reading "Еще больше удовольствия с арифметикой DATETIME!"

Получите удовольствие от арифметики с DATETIME

Пересказ статьи Eitan Blumin. Fun with DATETIME Arithmetics


Нулевое значение


Тип данных datetime имеет "нулевое значение", которое представляется как 1900-01-01 00:00:00.

Оно может быть представлено литеральным значением 0. Проверим:


Continue reading "Получите удовольствие от арифметики с DATETIME"

Плохие привычки: злоупотребление столбцами типа bit

Пересказ статьи Aaron Bertrand. Bad Habits: Abusing bit columns


Я просматриваю много кода DDL от различных команд, и часто встречаю такое:

ALTER TABLE dbo.Widgets ADD IsNotCertified bit NULL;

Когда я вижу битовый столбец, допускающий NULL-значения, то всегда спрашиваю:

Вы намеренно хотите использовать здесь трехзначную логику?
Означает ли NULL что-то отличное от 0, или весь будущий код будет использовать COALESCE, чтобы сравнивать NULL с нулем?

Continue reading "Плохие привычки: злоупотребление столбцами типа bit"

Плохие привычки: злоупотребление столбцами типа bit

Пересказ статьи Aaron Bertrand. Bad Habits: Abusing bit columns


Я просматриваю много кода DDL от различных команд, и часто встречаю такое:

ALTER TABLE dbo.Widgets ADD IsNotCertified bit NULL;

Когда я вижу битовый столбец, допускающий NULL-значения, то всегда спрашиваю:

Вы намеренно хотите использовать здесь трехзначную логику?
Означает ли NULL что-то отличное от 0, или весь будущий код будет использовать COALESCE, чтобы сравнивать NULL с нулем?

Continue reading "Плохие привычки: злоупотребление столбцами типа bit"

SQL FLOAT: 3 пункта, которые помогут избежать странных математических ошибок

Пересказ статьи Edwin Sanchez. SQL FLOAT: 3 Points that Will Help you to Avoid Weird Math Errors


Думали ли вы когда-нибудь, что SQL может ошибиться в математике? Это звучит невероятно. Однако, если вы используете тип данных FLOAT, то можете столкнуться с проблемами, которые я вам продемонстрирую.
Continue reading "SQL FLOAT: 3 пункта, которые помогут избежать странных математических ошибок"