Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥5🤝4
This media is not supported in your browser
VIEW IN TELEGRAM
Exercism — это платформа для изучения программирования через практические задания. Можно практиковаться на 70 различных языках, в том числе и на SQL.
📌 Ссылочка: exercism.org
➡️ SQL Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3
Почему неожиданно увеличилось время запроса?
Причин тому может быть много - неоптимизированный запрос, запрос вне индекса, устаревшая статистика таблицы и так далее. И точно определить причину помогут инструменты
Предположим, у нас есть большая таблица, которая содержит около миллиона строк с разными книгами. Естественно у нас уже есть некластерный индекс по столбцу жанр — для быстрого поиска книг по жанрам, сделаем запрос:
Но запрос возвращает результат не за 200 ожидаемых мс, а за 900 мс. Многовато, надо разбираться, проанализируем запрос:
Запрос
Проанализируем план запроса и увидим, что планировщик запроса собирается обойти всю таблицу —
🔥 В следующей части расскажу, что делать для обновления статистики таблицы и как избежать таких ситуаций с помощью
➡️ SQL Ready | #практика
Причин тому может быть много - неоптимизированный запрос, запрос вне индекса, устаревшая статистика таблицы и так далее. И точно определить причину помогут инструменты
EXPLAIN
и ANALYZE
.Предположим, у нас есть большая таблица, которая содержит около миллиона строк с разными книгами. Естественно у нас уже есть некластерный индекс по столбцу жанр — для быстрого поиска книг по жанрам, сделаем запрос:
SELECT book_title, author FROM books WHERE genre = 'Фантастика';
Но запрос возвращает результат не за 200 ожидаемых мс, а за 900 мс. Многовато, надо разбираться, проанализируем запрос:
EXPLAIN ANALYZE SELECT book_title, author FROM books WHERE genre = 'Фантастика';
Запрос
EXPLAIN ANALYZE
возвращает план запроса и время выполнения каждой операции в запросе:QUERY PLAN
Seq Scan on books (cost=0.00..25000.00 rows=1000 width=100) (actual time=0.010..900.000 rows=500 loops=1)
Filter: (genre = 'Фантастика'::text)
Rows Removed by Filter: 999500
Planning Time: 0.200 ms
Execution Time: 900.500 ms
(4 rows)
Проанализируем план запроса и увидим, что планировщик запроса собирается обойти всю таблицу —
Seq Scan on books
, хотя должен использовать индекс по жанру. Это значит, планировщик не использует индекс из-за устаревшей статистики или из-за быстрого роста записей в таблице.🔥 В следующей части расскажу, что делать для обновления статистики таблицы и как избежать таких ситуаций с помощью
VACUUM ANALYZE
.Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥4
👍8🔥3
В этой статье:
• Лайфхаки при работе с большими загрузками.
• В каком виде стоит загружать данные.
• Неочевидные советы при работе с индексами
.🔊 Продолжить читать можешь на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Как мы помним из викторины, чтобы не столкнуться с неожиданным результатом запроса, важно явно указать типы данных при взаимодействии разных типов. Для этого существуют методы:
•
CAST
— преобразует указанное значение в заданный тип данных. Необходимо для преобразования строковых значений в числовые, чтобы их можно было сравнить.•
CONVERT
— аналогичный метод преобразования данных, но предлагает расширенный функционал для форматирования, но поддерживается не всеми СУБД.🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Знали про StrataScratch? Это платформа по типу leetcode, но только для SQL
На этом сайте вы сможете выбрать задачи разного уровня и профиля, а также выбрать подходящую СУБД для практики.
📌 Ссылочка: stratascratch.com
➡️ SQL Ready | #ресурс
На этом сайте вы сможете выбрать задачи разного уровня и профиля, а также выбрать подходящую СУБД для практики.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3
👍7🔥5
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3