Skip to content

Восстановление в режиме ожидания; обзор и выученный урок

Пересказ статьи Andy Warren. Restore With Standby; A Review and A Lesson Learned


Имеются функции SQL Server, которые я использую часто и считаю, что понимаю их достаточно хорошо. Есть функции, о которых я знаю, но использую редко, и есть большой список вещей, на которые я только взглянул или использовал один раз. В части знакомых мне вещей я иногда обнаруживаю, что не вполне их понимал или пропустил темные углы, поскольку мне никогда не требовалось исследовать их. Хотя возникает огорчение или фейспалм Пикарда — естественные реакции на "Я думал, что знаю это", лучше осознать, что теперь у меня на один пробел меньше, чем было раньше. Здесь, как вы, вероятно, предположили, я имею в виду восстановление в режиме ожидания. Я начну с краткого обзора резервирования журнала, norecovery и standby, затем покажу вам как это работает на нескольких примерах, включая тот, который иллюстрирует урок, который я при этом получил, и сопровожу его некоторыми замечаниями о том, почему эта мелочь в восстановлении может однажды избавить вас от плохого настроения.
Continue reading "Восстановление в режиме ожидания; обзор и выученный урок"

Различные способы преобразования целого значения в строку

Пересказ статьи Daniel Calbimonte. Different ways to Convert a SQL INT Value into a String Value


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

Начинаем


Пусть у нас есть числовой столбец OrderQty в таблице WorkOrder в производственной базе данных SQL.

SELECT [OrderQty]
FROM [Production].[WorkOrder]

Continue reading "Различные способы преобразования целого значения в строку"

Проблемы плана выполнения SQL Server при использовании предложения TOP и различных параметров

Пересказ статьи Mehdi Ghapanvari. SQL Server Execution Plan Issues when using TOP Clause and Various Parameters


Запрос иногда оказывается супер быстрым, а иногда - очень медленным. Одной из основных причин такого поведения является прослушивание параметра (Parameter Sniffing). Имеется несколько подходов, связанных с проблемой прослушивания параметра, и в этой статье обсуждаются эффективные методы для обработки Parameter Sniffing в операторах SELECT, содержащих предложение TOP.
Continue reading "Проблемы плана выполнения SQL Server при использовании предложения TOP и различных параметров"

Массивы и списки в SQL Server. Сокращенная версия

Пересказ статьи Erland Sommarskog. Arrays and Lists in SQL Server. The Short Version


1. Введение


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

Как, используя Python, подключиться к SQL Server и выполнить запрос

Пересказ статьи Haq Nawaz. How to Connect & Query SQL Server using Python


Сегодня я расскажу, как подключиться к базам данных SQL, используя Python. Это распространенный вопрос, который возникает в серии ETL. Поэтому я решил рассмотреть его и направлять посетителей сюда, если у них возникнут проблемы с подключением.

Эта установка SQL Server позволит нам:

  • Установить подключение к базе данных SQL Server из Python

  • Выполнять запросы к базе данных SQL Server

  • Извлекать и сохранять данные в фрейме данных

Continue reading "Как, используя Python, подключиться к SQL Server и выполнить запрос"

Что это за хинт запроса READPAST?

Пересказ статьи Chad Callihan. What is the READPAST Query Hint?


Вы когда-нибудь слышали о хинте запроса READPAST? Я бы сказал, что это родной брат NOLOCK. С помощью NOLOCK вы получите данные быстрей, но с риском грязных чтений. С помощью READPAST SQL Server вообще пропустит заблокированные данные. Это может быть как полезно, так и весьма опасно, если вы не знаете, как это используется.

Давайте сравним NOLOCK и READPAST, чтобы вы знали, чего следует ожидать, если вы хотите правильно использовать эти хинты запросов.
Continue reading "Что это за хинт запроса READPAST?"

Как вы можете использовать IS [NOT] DISTINCT FROM

Пересказ статьи Chad Callihan. How You Can Use IS [NOT] DISTINCT FROM


Недавно я поигрался с одной функцией, введенной в SQL Server 2022 - IS [NOT] DISTINCT FROM. Эта новая функция может помочь в случае, когда приходится сравнивать NULL-значения.

Сравнение NULL-значения с другим значением будет возвращать NULL. Это подобно умножению чего-нибудь на 0. IS [NOT] DISTINCT FROM гарантирует получение true или false в предположении, что NULL есть "что-то".

Давайте посмотрим [NOT] DISTINCT FROM в действии на примере.

Continue reading "Как вы можете использовать IS [NOT] DISTINCT FROM"

Давайте поговорим о схеме базы данных

Пересказ статьи Adron. Let’s Talk About Database Schema


Серьезно, давайте поговорим о схеме абстрактно и о буквальной схеме, реализованной в некоторых из самых популярных систем баз данных.

Что такое схема?


В целом, в стороне от специфических реализаций в реляционных базах данных, "схема" - это концептуальная основа или проект, который определяет структуру, связи и ограничения данных или информации. Она предоставляет способ описания и организации данных в структурированном виде. Такое понятие схемы не уникально для баз данных; например, в GraphQL схема определяет типы, запросы, мутации и связи между ними, ограничивая набор возможных операций, которые могут выполняться с использованием API, и форму возвращаемых данных. Continue reading "Давайте поговорим о схеме базы данных"

Как поменять владельца базы данных SQL Server

Пересказ статьи Nisarg Upadhyay. How to Change the SQL Server Database Owner


В SQL Server с каждой базой данных связан владелец (owner), который является принципалом, имеющим определенные разрешения и контроль над базой данных. Владелец базы данных - это пользователь или логин, которому предоставлена пользовательская роль dbo (database owner) на эту базу данных. Владелец базы данных имеет наивысший уровень разрешений в пределах базы данных и может выполнять административные задачи, такие как создание или модификация объектов, управление безопасностью и изменение схемы базы данных.
Continue reading "Как поменять владельца базы данных SQL Server"

Упорядоченные поколоночные индексы в SQL Server 2022

Пересказ статьи Edward Pollack. Ordered Columnstore Indexes in SQL Server 2022


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

Чтобы помочь с этой проблемой, в SQL Server 2022 была добавлена возможность указывать предложение ORDER при создании или перестройке индекса. Эта функция приводит к автоматической сортировке данных SQL Server в рамках процессов вставки или перестройки. В этой статье подробно рассматривается эта функция, уделяя внимание ее использованию и ограничениям.
Continue reading "Упорядоченные поколоночные индексы в SQL Server 2022"

Табличнозначные параметры в SQL Server

Пересказ статьи Henrique Siebert Domareski. Table-Valued Parameters in SQL Server


Табличнозначные параметры подобны массивам параметров, которые могут использоваться для передачи множества строк данных в оператор Transact-SQL, хранимую процедуру или функцию без необходимости создавать временную таблицу или использовать множество параметров. В этой статье демонстрируется использование табличнозначного параметра в хранимой процедуре Microsoft SQL Server.
Continue reading "Табличнозначные параметры в SQL Server"

Статистика для улучшения производительности: сравнение SQL Server и Oracle

Пересказ статьи Pablo Echeverria. SQL Server vs Oracle Query Statistics to Improve Performance


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

В этой статье мы увидим, как определить, какие планы выполнения находятся в кэше и их накопленную статистику, сколько раз они были выполнены, и какое число различных планов выполнения имеется.
Continue reading "Статистика для улучшения производительности: сравнение SQL Server и Oracle"

Режимы хранилища SQL Server - выбор между построчным и поколоночным хранением

Пересказ статьи Jared Westover. SQL Server Storage Modes - Choosing Rowstore or Columnstore


Я слышал, что SQL Server описывают как приложение, имеющее фут в ширину и милю в глубину. Я думаю, что мог бы привести аргумент в пользу 10 миль в глубину. Есть несколько существенных моментов, о которых должен знать инженер данных. Например, знаете ли вы, что есть два режима хранения записей в SQL Server? Если вы собираетесь на интервью или проектируете архитектуру базы данных вашего следующего приложения, выходите на свет. Как говорил Уоррен Баффетт, "чем больше вы учитесь, тем больше зарабатываете".
Continue reading "Режимы хранилища SQL Server - выбор между построчным и поколоночным хранением"

Два способа создания итогов в SQL

Пересказ статьи Steve Sohcot. Two Ways To Create Totals In SQL


При представлении табличных данных вам может потребоваться строка "итого" внизу списка.

Помнится лет 25! назад я применял подход создания многомерного массива для суммирования значений строка за строкой и столбец за столбцом. Как на стороне сервера, так и на JavaScript.

Создание итоговой строки на SQL (на стороне сервера) является более эффективным. Это также облегчает работу фронтенд разработчику.
Continue reading "Два способа создания итогов в SQL"

Роли, схемы, привилегии и владельцы в SQL Server, Oracle и PostgreSQL. Часть II

Пересказ статьи Andrea Gnemmi. SQL Server, Oracle and PostgreSQL Database Security Roles, Schemas, Grants, Privileges and Owners - Part II


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

Continue reading "Роли, схемы, привилегии и владельцы в SQL Server, Oracle и PostgreSQL. Часть II"