Повышение эффективности SQL-запросов, советы по настройке
В данном контексте, подчеркивается важность умения настраивать ("в нужный режим") SQL-запросы для обеспечения их оптимальной производительности. Этот навык полезен для всех, кто работает с базой данных SQL Server - от обычных пользователей до администраторов и разработчиков, которые пишут собственные SQL-запросы.
В статье представлен ряд советов и методов, которые помогут читателям оценить производительность своих SQL-запросов и улучшить ее при необходимости. Здесь будут рассмотрены некоторые ключевые аспекты оптимизации запросов для SQL Server, чтобы помочь пользователям сделать их более эффективными и быстрыми.
https://www.mssqltips.com/sqlservertip/7125/sql-query-performance-tuning-tips/
#db
👉 @database_info
В данном контексте, подчеркивается важность умения настраивать ("в нужный режим") SQL-запросы для обеспечения их оптимальной производительности. Этот навык полезен для всех, кто работает с базой данных SQL Server - от обычных пользователей до администраторов и разработчиков, которые пишут собственные SQL-запросы.
В статье представлен ряд советов и методов, которые помогут читателям оценить производительность своих SQL-запросов и улучшить ее при необходимости. Здесь будут рассмотрены некоторые ключевые аспекты оптимизации запросов для SQL Server, чтобы помочь пользователям сделать их более эффективными и быстрыми.
https://www.mssqltips.com/sqlservertip/7125/sql-query-performance-tuning-tips/
#db
👉 @database_info
👍3
Новое в SQL Server 2022: изменение стратегии прироста журналов транзакций
Когда я впервые узнал о том, что SQL Server 2022 будет поддерживать мгновенную инициализацию файлов журнала транзакций, я был заинтригован. Когда позже выяснилось, что это относится только к автоматическому приращению и только с размером не больше 64 МБ, интрига несколько потеряла свой «блеск». Из-за этих ограничений я скептически отнесся к тому, что новая стратегия сможет заменить сложившуюся практику автоматического увеличения файлов журналов на 1 ГБ — по крайней мере, с тех пор, как SSD и другие современные хранилища получили достаточное распространение.
Но поигравшись с этим новшеством, я проникся.
https://www.red-gate.com/simple-talk/databases/sql-server/t-sql-programming-sql-server/log-file-instant-file-initialization/
#db
👉 @database_info
Когда я впервые узнал о том, что SQL Server 2022 будет поддерживать мгновенную инициализацию файлов журнала транзакций, я был заинтригован. Когда позже выяснилось, что это относится только к автоматическому приращению и только с размером не больше 64 МБ, интрига несколько потеряла свой «блеск». Из-за этих ограничений я скептически отнесся к тому, что новая стратегия сможет заменить сложившуюся практику автоматического увеличения файлов журналов на 1 ГБ — по крайней мере, с тех пор, как SSD и другие современные хранилища получили достаточное распространение.
Но поигравшись с этим новшеством, я проникся.
https://www.red-gate.com/simple-talk/databases/sql-server/t-sql-programming-sql-server/log-file-instant-file-initialization/
#db
👉 @database_info
👍1
Возможности SQLite, которые вы могли пропустить
Если вы используете SQLite, но не следите за его развитием, то возможно некоторые вещи, позволяющие сделать код проще, а запросы быстрее, прошли незамеченными. Под катом я постарался перечислить наиболее важные из них.
Частичные индексы (Partial Indexes)
При построении индекса можно указать условие попадания строки в индекс, к примеру, одна из колонок не пустая, а другая равна заданному значению.
Индексы на выражение (Indexes On Expressions)
Если в запросах к таблице часто используется выражение, то можно построить индекс по нему. Однако следует иметь в виду, что пока оптимизатор не очень гибок и перестановка столбцов в выражении приведет к отказу от использования индекса.
https://habr.com/ru/articles/528882/
#db
👉 @database_info
Если вы используете SQLite, но не следите за его развитием, то возможно некоторые вещи, позволяющие сделать код проще, а запросы быстрее, прошли незамеченными. Под катом я постарался перечислить наиболее важные из них.
Частичные индексы (Partial Indexes)
При построении индекса можно указать условие попадания строки в индекс, к примеру, одна из колонок не пустая, а другая равна заданному значению.
create index idx_partial on tab1(a, b) where a is not null and b = 5;
select * from tab1 where a is not null and b = 5; --> search table tab1 using indexИндексы на выражение (Indexes On Expressions)
Если в запросах к таблице часто используется выражение, то можно построить индекс по нему. Однако следует иметь в виду, что пока оптимизатор не очень гибок и перестановка столбцов в выражении приведет к отказу от использования индекса.
create index idx_expression on tab1(a + b);
select * from tab1 where a + b > 10; --> search table tab1 using index ...
select * from tab1 where b + a > 10; --> scan tablehttps://habr.com/ru/articles/528882/
#db
👉 @database_info
Хабр
Возможности SQLite, которые вы могли пропустить
Если вы используете SQLite, но не следите за его развитием , то возможно некоторые вещи, позволяющие сделать код проще, а запросы быстрее, прошли незамеченными. Под катом я постарался перечислить...
👍4
Использование составных триггеров (compound triggers) Oracle
Перед нами стоят задачи
1- при обновлении поля orders.discount пересчитать orders_detail.sum_order, а также обновить поле orders.amount по всему заказу;
2 - при изменении orders_detail.price и(или) orders_detail.qty пересчитать orders_detail.sum_order, а также обновить поле orders.amount по всему заказу;
3- orders_detail.sum_order считается по формуле: orders_detail.sum_order = orders_detail.price * orders_detail.qty * (1- orders.discount/100).
При таких задачах возникает ошибка мутирования таблиц ORA-04091: table is mutating.
https://habr.com/ru/articles/748422/
#db
👉 @database_info
Перед нами стоят задачи
1- при обновлении поля orders.discount пересчитать orders_detail.sum_order, а также обновить поле orders.amount по всему заказу;
2 - при изменении orders_detail.price и(или) orders_detail.qty пересчитать orders_detail.sum_order, а также обновить поле orders.amount по всему заказу;
3- orders_detail.sum_order считается по формуле: orders_detail.sum_order = orders_detail.price * orders_detail.qty * (1- orders.discount/100).
При таких задачах возникает ошибка мутирования таблиц ORA-04091: table is mutating.
https://habr.com/ru/articles/748422/
#db
👉 @database_info
👍2
Шпаргалка по PostgreSQL
Содержит общие команды, которые позволят вам быстро и эффективно работать с PostgreSQL.
https://bookflow.ru/shpargalka-po-postgresql/
#db
👉 @database_info
Содержит общие команды, которые позволят вам быстро и эффективно работать с PostgreSQL.
https://bookflow.ru/shpargalka-po-postgresql/
#db
👉 @database_info
👍5
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
SQL. Базовый курс
№1. Установка PostgreSQL, создаем схему, таблицу и импортируем данные из CSV
№2. Простые операции, SELECT
№3. Типы данных
№4. Импорт и экспорт данных
№5. Группировка
№6. Математические операции
№7. CASE
№8. Дополнения к урокам 1-7
№9. Повторение изученного
№10. Подзапросы
№11. CTE
№12. Оконные функции. Ранг, ранжирование (ranking)
Все видео доступны на youtube
#db
👉 @database_info
№1. Установка PostgreSQL, создаем схему, таблицу и импортируем данные из CSV
№2. Простые операции, SELECT
№3. Типы данных
№4. Импорт и экспорт данных
№5. Группировка
№6. Математические операции
№7. CASE
№8. Дополнения к урокам 1-7
№9. Повторение изученного
№10. Подзапросы
№11. CTE
№12. Оконные функции. Ранг, ранжирование (ranking)
Все видео доступны на youtube
#db
👉 @database_info
👍5
Оптимизация данных в MS SQL
Одним из методов для оптимизации обработки, хранения и администрирования данных в базе данных и кубах MS SQL — это процесс создании партицирования данных.
Partitioning (партицирование или по-другому секционирование) — это разбиение таблицы на несколько частей, а эти части на одну или несколько файловых групп. Партицирование необходимо для целей ускорения доступа чтения или изменения данных и администрирования. Так как выровненный индекс по таблице будет содержаться в каждой условно своей секции, то при чтении или изменении данных будет обращение к конкретной секции и конкретному индексу в этой секции.
https://habr.com/ru/articles/705656/
#db
👉 @database_info
Одним из методов для оптимизации обработки, хранения и администрирования данных в базе данных и кубах MS SQL — это процесс создании партицирования данных.
Partitioning (партицирование или по-другому секционирование) — это разбиение таблицы на несколько частей, а эти части на одну или несколько файловых групп. Партицирование необходимо для целей ускорения доступа чтения или изменения данных и администрирования. Так как выровненный индекс по таблице будет содержаться в каждой условно своей секции, то при чтении или изменении данных будет обращение к конкретной секции и конкретному индексу в этой секции.
https://habr.com/ru/articles/705656/
#db
👉 @database_info
👍2
SQL Tutorial - Full Database Course for Beginners
⌨️ (0:00) Introduction
⌨️ (2:36) What is a Database?
⌨️ (23:10) Tables & Keys
⌨️ (43:31) SQL Basics
⌨️ (52:26) MySQL Windows Installation
⌨️ (1:01:59) MySQL Mac Installation
⌨️ (1:15:49) Creating Tables
⌨️ (1:31:05) Inserting Data
⌨️ (1:38:17) Constraints
⌨️ (1:48:11) Update & Delete
⌨️ (1:56:11) Basic Queries
⌨️ (2:08:37) Company Database Intro
⌨️ (2:14:05) Creating Company Database
⌨️ (2:30:27 ) More Basic Queries
⌨️ (2:26:24) Functions
⌨️ (2:45:13) Wildcards
⌨️ (2:53:53) Union
⌨️ (3:01:36) Joins
⌨️ (3:11:49) Nested Queries
⌨️ (3:21:52) On Delete
⌨️ (3:30:05) Triggers
⌨️ (3:42:12) ER Diagrams Intro
⌨️ (3:55:53) Designing an ER Diagram
⌨️ (4:08:34) Converting ER Diagrams to Schemas
https://www.youtube.com/watch?app=desktop&v=HXV3zeQKqGY
#db
👉 @database_info
⌨️ (0:00) Introduction
⌨️ (2:36) What is a Database?
⌨️ (23:10) Tables & Keys
⌨️ (43:31) SQL Basics
⌨️ (52:26) MySQL Windows Installation
⌨️ (1:01:59) MySQL Mac Installation
⌨️ (1:15:49) Creating Tables
⌨️ (1:31:05) Inserting Data
⌨️ (1:38:17) Constraints
⌨️ (1:48:11) Update & Delete
⌨️ (1:56:11) Basic Queries
⌨️ (2:08:37) Company Database Intro
⌨️ (2:14:05) Creating Company Database
⌨️ (2:30:27 ) More Basic Queries
⌨️ (2:26:24) Functions
⌨️ (2:45:13) Wildcards
⌨️ (2:53:53) Union
⌨️ (3:01:36) Joins
⌨️ (3:11:49) Nested Queries
⌨️ (3:21:52) On Delete
⌨️ (3:30:05) Triggers
⌨️ (3:42:12) ER Diagrams Intro
⌨️ (3:55:53) Designing an ER Diagram
⌨️ (4:08:34) Converting ER Diagrams to Schemas
https://www.youtube.com/watch?app=desktop&v=HXV3zeQKqGY
#db
👉 @database_info
YouTube
SQL Tutorial - Full Database Course for Beginners
In this course, we'll be looking at database management basics and SQL using the MySQL RDBMS.
Want more from Mike? He's starting a coding RPG/Bootcamp - https://simulator.dev/
The course is designed for beginners to SQL and database management systems,…
Want more from Mike? He's starting a coding RPG/Bootcamp - https://simulator.dev/
The course is designed for beginners to SQL and database management systems,…
👍3
Тестирование на проникновение MSSQL
Эта шпаргалка создана специально для специалистов Red Team и специалистов по тестированию на проникновение. Она составлена таким образом, чтобы новички могли понять основы, а профессионалы - отточить свои навыки с помощью расширенных возможностей. Существует множество способов выполнения всех перечисленных задач, поэтому мы составили этот список на основе нашего опыта.
https://github.com/Ignitetechnologies/MSSQL-Pentest-Cheatsheet
#db
👉 @database_info
Эта шпаргалка создана специально для специалистов Red Team и специалистов по тестированию на проникновение. Она составлена таким образом, чтобы новички могли понять основы, а профессионалы - отточить свои навыки с помощью расширенных возможностей. Существует множество способов выполнения всех перечисленных задач, поэтому мы составили этот список на основе нашего опыта.
https://github.com/Ignitetechnologies/MSSQL-Pentest-Cheatsheet
#db
👉 @database_info
👍4
Media is too big
VIEW IN TELEGRAM
MongoDB. Полный курс
MongoDB - документно-ориентированная, NoSQL база, используемая для хранения больших объемов информации. Основная особенность базы - это представление данных в виде документов, структура которых напоминает JSON. Благодаря такому подходу MongoDB работает быстрее, обладает лучшей масштабируемость и ее легче использовать. Весь курс можно разбить на 2 основные части. В первой, мы разберём особенности работы с MongoDB, ключевые команды взаимодействия с базой и коллекцией. Команды поиска, сортировки, удаления и редактирования элементов. Во второй, используя Node.js, Express и библиотеку mongoose создадим свой API поддерживающий весь стэк CRUD операций.
✔ 0:00 - Введение (Introduction)
✔ 2:11 - Основные понятия (Basic Concepts)
✔ 9:15 - Установка инструментов (Installing Tools)
✔ 14:39 - Использование MongoDB Compass и Shell (Using MongoDB Compass & Shell)
✔ 20:04 - Добавление новых данных (Adding New Documents)
✔ 25:50 - Поиск документов (Finding Documents)
✔ 32:49 - Лимит и сортировка данных (Limiting & Sorting Data)
✔ 40:07 - Операторы и составные запросы (Operators & Complex Queries)
✔ 47:54 - Запросы вложенных документов (Querying Nested Documents)
✔ 53:55 - Удаление и обновление документов (Deleting & Updating Documents)
✔ 1:00:22 - Сложное обновление документов (Complex Updating Documents)
✔ 1:06:48 - Полезные методы и операторы (Useful Methods & Operators)
✔ 1:14:19 - Управление базами и коллекциями (Managing DBs & Collections)
✔ 1:21:06 - Создание сервера, подключение к БД (Creating Server & Connecting To MongoDB)
✔ 1:29:21 - Курсоры и получение данных (Cursors & Fetching Data)
✔ 1:35:09 - Чтение и удаление документа (Fetching & Removing Document)
✔ 1:40:51 - Создание и обновление документа (Creating & Updating Document)
✔ 1:47:28 - Интеграция mongoose (Mongoose Integration. Part I)
✔ 1:57:41 - Интеграция mongoose (Mongoose Integration. Part II)
✔ 2:04:43 - MVC и Роутер (MVC Pattern & Router)
✔ 2:12:58 - Облачная база данных MongoDB Atlas (MongoDB Atlas)
истрчник
#db
👉 @database_info
MongoDB - документно-ориентированная, NoSQL база, используемая для хранения больших объемов информации. Основная особенность базы - это представление данных в виде документов, структура которых напоминает JSON. Благодаря такому подходу MongoDB работает быстрее, обладает лучшей масштабируемость и ее легче использовать. Весь курс можно разбить на 2 основные части. В первой, мы разберём особенности работы с MongoDB, ключевые команды взаимодействия с базой и коллекцией. Команды поиска, сортировки, удаления и редактирования элементов. Во второй, используя Node.js, Express и библиотеку mongoose создадим свой API поддерживающий весь стэк CRUD операций.
✔ 0:00 - Введение (Introduction)
✔ 2:11 - Основные понятия (Basic Concepts)
✔ 9:15 - Установка инструментов (Installing Tools)
✔ 14:39 - Использование MongoDB Compass и Shell (Using MongoDB Compass & Shell)
✔ 20:04 - Добавление новых данных (Adding New Documents)
✔ 25:50 - Поиск документов (Finding Documents)
✔ 32:49 - Лимит и сортировка данных (Limiting & Sorting Data)
✔ 40:07 - Операторы и составные запросы (Operators & Complex Queries)
✔ 47:54 - Запросы вложенных документов (Querying Nested Documents)
✔ 53:55 - Удаление и обновление документов (Deleting & Updating Documents)
✔ 1:00:22 - Сложное обновление документов (Complex Updating Documents)
✔ 1:06:48 - Полезные методы и операторы (Useful Methods & Operators)
✔ 1:14:19 - Управление базами и коллекциями (Managing DBs & Collections)
✔ 1:21:06 - Создание сервера, подключение к БД (Creating Server & Connecting To MongoDB)
✔ 1:29:21 - Курсоры и получение данных (Cursors & Fetching Data)
✔ 1:35:09 - Чтение и удаление документа (Fetching & Removing Document)
✔ 1:40:51 - Создание и обновление документа (Creating & Updating Document)
✔ 1:47:28 - Интеграция mongoose (Mongoose Integration. Part I)
✔ 1:57:41 - Интеграция mongoose (Mongoose Integration. Part II)
✔ 2:04:43 - MVC и Роутер (MVC Pattern & Router)
✔ 2:12:58 - Облачная база данных MongoDB Atlas (MongoDB Atlas)
истрчник
#db
👉 @database_info
👍2
Переход на PgCat — прокси-сервер Postgres следующего поколения
PgCat — это open source прокси-сервер Postgresql, в развитии которого мы участвуем и который используем на продакшене. Функционал PgCat для кластеров Postgresql: пул соединений, балансировка нагрузки, отработка отказа реплики.
В Instacart мы применяем Postgresql почти для всех задач баз данных: эффективным кешированием, индексированием, оптимизацией запросов и вертикальным масштабированием экземпляров выжимаем из одного экземпляра Postgres немало производительности. Все это отличные стратегии, но с ними далеко не уедешь. Не ограничиваясь одним экземпляром за счет добавления реплик чтения или горизонтального сегментирования БД, мы в обоих случаях увеличиваем сложность.
https://tech.instacart.com/adopting-pgcat-a-nextgen-postgres-proxy-3cf284e68c2f
#db
👉 @database_info
PgCat — это open source прокси-сервер Postgresql, в развитии которого мы участвуем и который используем на продакшене. Функционал PgCat для кластеров Postgresql: пул соединений, балансировка нагрузки, отработка отказа реплики.
В Instacart мы применяем Postgresql почти для всех задач баз данных: эффективным кешированием, индексированием, оптимизацией запросов и вертикальным масштабированием экземпляров выжимаем из одного экземпляра Postgres немало производительности. Все это отличные стратегии, но с ними далеко не уедешь. Не ограничиваясь одним экземпляром за счет добавления реплик чтения или горизонтального сегментирования БД, мы в обоих случаях увеличиваем сложность.
https://tech.instacart.com/adopting-pgcat-a-nextgen-postgres-proxy-3cf284e68c2f
#db
👉 @database_info
👍4
Высокодоступный MySQL на конвейере
Что нужно автоматизировать в управляемой базе данных? Какие нас ждут проблемы эксплуатации MySQL в облаках? Разберём существующие решения, позволяющие обеспечивать эффективную конфигурацию под высокую доступность и высокие нагрузки, а также их недостатки и практическое применение.
Поможет нам в этом Дмитрий Смаль, руководитель подразделения Managed MySQL и SQL Server в Yandex Cloud. Каждый день он занимается эксплуатацией и автоматизацией СУБД, а до этого делал нагруженные и не очень web-приложения. В целом любит делать разные интересные штуковины, которые работают! Сегодня мы с ним будем говорить про решение для высокодоступного MySQL.
https://habr.com/ru/companies/oleg-bunin/articles/754634/
#db
👉 @database_info
Что нужно автоматизировать в управляемой базе данных? Какие нас ждут проблемы эксплуатации MySQL в облаках? Разберём существующие решения, позволяющие обеспечивать эффективную конфигурацию под высокую доступность и высокие нагрузки, а также их недостатки и практическое применение.
Поможет нам в этом Дмитрий Смаль, руководитель подразделения Managed MySQL и SQL Server в Yandex Cloud. Каждый день он занимается эксплуатацией и автоматизацией СУБД, а до этого делал нагруженные и не очень web-приложения. В целом любит делать разные интересные штуковины, которые работают! Сегодня мы с ним будем говорить про решение для высокодоступного MySQL.
https://habr.com/ru/companies/oleg-bunin/articles/754634/
#db
👉 @database_info
👍2