Взаимодействие приложения системы и базы данных #559
smplseven
started this conversation in
Неопределенное
Replies: 1 comment 3 replies
-
Добрый день. Спасибо за исследование. Приведение типа для поля id используется в рамках общей унификации запросов к числовым полям Тотума. Для ид следует сделать исключение, но когда это будет реализовано я не знаю. |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Мы столкнулись с проблемой, связанной с использованием типа NUMERIC в запросах от приложения к базе данных, которая, возможно, негативно влияет на производительность, NUMERIC на наш взгляд препятствует эффективному использованию индексов.
Не могли бы вы подсказать , в чем заключается цель использования NUMERIC Есть ли конкретные сценарии, где его применение необходимо? Будем признательны за любые ваши рекомендации или пояснения.
Вот пример для сравнения:
Разница между двумя запросами заключается в типе данных и в том, как это влияет на использование индекса:
id
явно приводится к типуNUMERIC
, что меняет способ выполнения запроса. Приведение типов не позволяет использовать индекс напрямую, так как происходит преобразование данных. План запроса показывает:Index Only Scan
, фильтрация выполняется после сканирования индекса, что увеличивает стоимость и время выполнения запроса. Это происходит из-за необходимости преобразования каждого значенияid
к типуNUMERIC
для сравнения.2.Возможный запрос:
В этом запросе
id
используется как есть, без явного приведения типа. Предполагая, чтоid
в таблицеvyplaty
имеет типinteger
(или любой другой индексируемый тип, поддерживающий прямое сопоставление), база данных может использовать индекс для быстрого поиска. План запроса показывает:Здесь видно, что база данных использует
Index Only Scan
, что говорит о прямом использовании индекса для поиска.Beta Was this translation helpful? Give feedback.
All reactions