Skip to content

Где мои ошибки, SQL Server?

Пересказ статьи Garry Bargsley. Where are my SQL Server Errors?


Вы открывали когда нибудь журнал ошибок SQL Server и задавались вопросом: "А где ошибки?". Копаться в журнале ошибок в поисках того, что вам нужно, может вызвать головную боль. Конечно, вы можете использовать некоторые методы парсинга для поиска нужной информации, но иногда вам хочется взглянуть на журнал ошибок с помощью SSMS.


Continue reading "Где мои ошибки, SQL Server?"

DBCC ShrinkDatabase - я хочу сжать базу данных

Пересказ статьи Steve Stedman. DBCC ShrinkDatabase – I want to shrink my database


Не делайте этого. Вы можете перестать читать эту статью, но просто не делайте этого.

Эта публикация относится к сжатию файлов базы данных (файлов mdf или ndf), а не сжатию файла журнала. Файл журнала - это совершенно другая тема, хотя ShrinkDatabase действительно сжимает файл журнала.
Continue reading "DBCC ShrinkDatabase - я хочу сжать базу данных"

Интеллектуальный анализ кэша планов SQL Server - атрибуты плана

Пересказ статьи Edward Pollack. SQL Server plan cache mining – Plan attributes


Кэш планов выполнения в SQL Server является кладезью информации о запросах, которые выполнялись за последнее время. Помимо текста запроса и деталей плана выполнения доступны для исследования разнообразная статистика, опции и параметры. Эта информация, возможно, не всегда нужна для настройки производительности, но, когда она есть, знание куда обратиться и как её использовать, может сэкономить массу времени.
Continue reading "Интеллектуальный анализ кэша планов SQL Server - атрибуты плана"

Вставка столбца со значением по умолчанию в таблицу SQL Server

Пересказ статьи Nisarg Upadhyay. Insert Column with a Default Value to SQL Serve Table


Чтобы вставить данные в таблицу, имеющую столбцы со ограничениями по умолчанию, мы можем использовать ограничение DEFAULT для вставки принятого значения по умолчанию в таблицу. Здесь рассматриваются следующие вопросы:

  • Ограничение DEFAULT и необходимые разрешения для его создания.

  • Добавление ограничения DEFAULT при создании новой таблицы.

  • Добавление ограничения DEFAULT в существующую таблицу.

  • Модификация и просмотр определения ограничения с помощью скриптов T-SQL и в SSMS.


Continue reading "Вставка столбца со значением по умолчанию в таблицу SQL Server"

Как использовать функциональность массивов в SQL Server?

Пересказ статьи Josip Saban. How to Use Array Functionality in SQL Server?


Обработка массива значений внутри процедуры или функции является обычным требованием в большинстве бизнес-кейсов. Поскольку SQL Server не поддерживает переменные типа массива, разработчики используют список значений (главным образом, CSV) на входе.

Табличнозначные параметры (TVP) вместо массивов


SQL Server 2008 ввел функциональность, называемую табличнозначными параметрами (TVP). Она позволяет пользователям объединять значения в таблицу и обрабатывать их в табличном формате. Хранимые процедуры или функции могут использовать такую переменную в операторах соединения. Это дает возможность улучшить производительность и избежать поэлементных операций типа курсора.

Continue reading "Как использовать функциональность массивов в SQL Server?"

Нахождение дочерних записей по внешнему ключу в SQL Server

Пересказ статьи John Morehouse. Finding Foreign Key Child Records In SQL Server


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

Как разблокировать логин SQL Server с помощью T-SQL (без смены пароля)?

Пересказ статьи Kenneth Fisher. How do I unlock a SQL Server Login using T-SQL (without changing the password)?


Недавно логин приложения (авторизация SQL Server) в одной из наших учебных сред начал постоянно блокироваться. Я не буду вдаваться в причины, скажу лишь, что мы решили эту проблему. Это была серьезная проблема, которая довольно быстро перешла в нашу цепочку управления. Нам требовалось решить её как можно быстрее. Поэтому требовалось решение не только на длительную перспективу, но также краткосрочное решение. Последнее решение включает создание скрипта, который разблокирует логин (если он заблокирован), и включение его в задание, которое выполняется каждые 5 минут.

Continue reading "Как разблокировать логин SQL Server с помощью T-SQL (без смены пароля)?"

Безопасность SQL Server - модель безопасности с использованием определяемых пользователем ролей

Пересказ статьи Greg Larsen. SQL Server security – Providing a security model using user-defined roles


При разработке приложения, которому требуется доступ к SQL Server, необходимо установить модель безопасности с тем, чтобы каждый пользователь получал такой доступ, который необходим ему для выполнения своих обязанностей. Некоторые приложения требуют одинаковый доступ для всех пользователей, в то время как для других могут потребоваться различные права безопасного доступа на основе роли, которую пользователь имеет в организации. Лучшей практикой предоставления доступа пользователю является безопасность на основе роли пользователя. SQL Server предоставляет пользовательские роли уровня сервера и базы данных с целью определения правил безопасности для различных потребностей пользователей в безопасности. В настоящей статье мы обсудим пользовательские роли сервера и базы данных для обеспечения безопасного доступа к ресурсам SQL Server.
Continue reading "Безопасность SQL Server - модель безопасности с использованием определяемых пользователем ролей"

9 признаков того, что ваш T-SQL может не пройти проверку кода

Пересказ статьи Brent Ozar. 9 Signs Your T-SQL Might Fail a Code Review


Трудно установить абсолютные правила типа: "Фичу X нельзя использовать ни в коем случае."

Однако имеется несколько вещей, которые включают тревожный звоночек, когда я их вижу. Обычно, когда я начинаю задавать больше вопросов об использовании этих конкретных функций, мне отвечают "О, я не знал, что была проблема." Поскольку у нас более широкое обсуждение, это приводит к тому фрагменту кода, который не проходит проверку и возвращается на доработку.
Continue reading "9 признаков того, что ваш T-SQL может не пройти проверку кода"

9 признаков того, что ваш T-SQL может не пройти проверку кода

Пересказ статьи Brent Ozar. 9 Signs Your T-SQL Might Fail a Code Review


Трудно установить абсолютные правила типа: "Фичу X нельзя использовать ни в коем случае."

Однако имеется несколько вещей, которые включают тревожный звоночек, когда я их вижу. Обычно, когда я начинаю задавать больше вопросов об использовании этих конкретных функций, мне отвечают "О, я не знал, что была проблема." Поскольку у нас более широкое обсуждение, это приводит к тому фрагменту кода, который не проходит проверку и возвращается на доработку.
Continue reading "9 признаков того, что ваш T-SQL может не пройти проверку кода"

Как автоматизировать серверные процессы в экземпляре SQL Server с помощью Python

Пересказ статьи Ian Fogelman. How to Automate Backend Processes in SQL Server Instance with Python


Автоматизация серверных (backend) процессов в экземпляре SQL Server является традиционной задачей. Будь то обновление статистики, перестройка индексов, чтение или удаление данных или другие среды программирования, интегрирующиеся с RDMS, все это исключительно важно. В этой статье рассматриваются те виды задач, которые могут быть выполнены с помощью различных методов, доступных в модулях Python.

Continue reading "Как автоматизировать серверные процессы в экземпляре SQL Server с помощью Python"

Только левое соединение на основе последующего внутреннего соединения

Пересказ статьи Greg Dodd. Only Left Joining based on Subsequent Inner Join


Несколько затруднительно объяснить, почему вы должны использовать это, поэтому давайте сразу перейдем к примерам. Я создал базу данных Schools, используя этот скрипт от Microsoft, а потом внес в него несколько изменений, чтобы нормализовать таблицу Person:
Continue reading "Только левое соединение на основе последующего внутреннего соединения"

Все, что вам нужно знать о поколоночных индексах, в одной статье

Пересказ статьи Gail. All you need to know about Columnstore Indexes in one article


Я осознал, что, несмотря на обилие публикаций об индексах за многие годы, я никогда не писал в блоге о поколоночных (Columnstore) индексах. Время исправить это. Здесь все, что вам нужно знать, чтобы начать использовать поколоночные индексы. (Обратите внимание, это никоим образом не вообще все, что нужно знать об индексах columnstore. Для этого см. серию блогов Nico, в настоящее время насчитывающую 131 публикацию). Continue reading "Все, что вам нужно знать о поколоночных индексах, в одной статье"

Как буферный пул обрабатывает условия нехватки памяти?

Пересказ статьи Randolph West. How does the buffer pool handle low memory conditions?


Одним из больших клише в профессиональном словаре данных (после "это зависит") является то, что вы всегда даете SQL Server столько RAM, сколько можете себе позволить, поскольку он будет всю ее использовать. Но что произойдет, если SQL Server не хватает памяти?
Continue reading "Как буферный пул обрабатывает условия нехватки памяти?"

Как работает буферный пул?

Пересказ статьи Randolph West. How does the buffer pool work?


Сегодня мы начнем рассмотрение буферного пула в SQL Server, и как он обычно используется. Прежде чем глубже погрузиться в буферный пул, нам потребуется напомнить себе некоторые фундаментальные вещи о том, как компьютеры обрабатывают и хранят информацию, т.к. это имеет отношение к пониманию работы буферного пула. Continue reading "Как работает буферный пул?"