Пересказ статьи Lorenzo Uriel. Everything you Need to Know About Index in SQL Server
Цель настоящей статьи - рассказать просто об индексах в SQL Server, объяснив фундаментальные понятия и предложив практические советы по обслуживанию.
Я обязуюсь обеспечить легкое и быстрое чтение, упрощающее понимание этого важного аспекта в области баз данных и управлении запросами.
Темы
- Обзор индексов
- Типы индексов в SQL Server
- Кластеризованные индексы.
- Некластеризованные индексы.
- Поколоночный и построчный индексы.
- Фрагментация индексов
- Внутренняя и внешняя.
- Перестройка и реорганизация.
Continue reading "Все, что вам нужно знать об индексе в SQL Server"
Пересказ статьи Julien Van Beveren. Forcing the Postgres query planner into using the correct index using OFFSET 0
MySQL имеет возможность применять хинт USE INDEX для указания, какие индексы использовать при выполнении конкретного запроса. PostgreSQL не имеет такой особенности, полагая, что он лучше знает, когда и какие индексы использовать.
Перед выполнением запроса PostgreSQL строит "план". Это сложный процесс, который я хотел бы понимать досконально, но планировщик запросов главным образом смотрит на существующие индексы, распределение данных и фильтры запроса, чтобы найти различные способы вернуть затребованные вами данные. Затем он оценивает "стоимость" каждой операции и выполняет "самый дешевый" план. Это работает отлично до тех пор, пока не...
Continue reading "Принудительное использование планировщиком запросов Postgres правильного индекса с помощью OFFSET 0"
Пересказ статьи Andy Brownsword. Comparing Performance of TOP vs. MAX
Как TOP(1), так и MAX могут использоваться для нахождения наибольшего значения в наборе данных. Хотя они приводят к одному и тому же результату, но делают это разными способами.
Для начала разберемся, в чем разница между ними?
Предложение TOP ограничивает число результатов, возвращаемых запросом; тут мы рассматриваем единственный результат. При использовании MAX, напротив, мы применяем функцию к нашим данным, чтобы выбрать из них максимальное значение.
Давайте перейдем к нескольким примерам с данными StackOverflow, а конкретно таблицы Votes.
Continue reading "Сравнение производительности TOP и MAX"
Пересказ статьи Exploring Performance: Raw SQL Queries vs. ORM in Python
В приложениях, управляемых данными, очень важна оптимизация производительности. Когда приходится взаимодействовать с данными, разработчики часто оказываются на распутье: следует ли им непосредственно использовать запросы SQL или выбрать фреймворк объектно-реляционного отображения (ORM)? Эта статья углубляется в эту дискуссию, выделяя преимущества и недостатки обоих подходов, сопровождая их реальными примерами кода Python для более глубокого понимания.
Понимание ландшафта
Прямые запросы SQL встраиваются непосредственно в ваш код для взаимодействия с данными. Они предоставляют разработчикам детальное управление структурой и выполнением запроса, что делает их привлекательными для сложных запросов. С другой стороны, фреймворки ORM типа SQLAlchemy абстрагируют взаимодействие с базой данных в объекты Python, снижая необходимость писать непосредственно на SQL, улучшая при этом читабельность кода.
Continue reading "Исследование производительности: прямые SQL-запросы или ORM в Python"
Пересказ статьи Andy Brownsword. A Bit About Trivial Plans
Тривиальный план создается, когда у SQL Server нет никакого выбора по реализации. Вот пример из базы данных StackOverflow с удаленными индексами:
SELECT *
FROM dbo.Users
WHERE Id = 1234;
Здесь действительно нет никакого выбора помимо поиска в кластеризованном индексе. Это единственный индекс и это настолько же эффективно, насколько это возможно, учитывая, что мы фильтруем по ключу кластеризации для конкретного значения:
Continue reading "Немного о тривиальных планах"