Вопросы с тегом «optimization»

В контексте базы данных оптимизация относится к процессу выбора оптимизатором запросов эффективного физического плана выполнения.

2
MySQL: delete… where..in () против delete..from..join и заблокированные таблицы при удалении с помощью подвыбора
Отказ от ответственности: прошу прощения за отсутствие знаний о внутреннем устройстве базы данных. Здесь это идет: Мы запускаем приложение (не написанное нами), которое имеет большую проблему с производительностью при периодической очистке базы данных. Запрос выглядит так: delete from VARIABLE_SUBSTITUTION where BUILDRESULTSUMMARY_ID in ( select BUILDRESULTSUMMARY_ID from BUILDRESULTSUMMARY where BUILDRESULTSUMMARY.BUILD_KEY = …

2
Многорядная вставка против нескольких однорядных вставок
В моем приложении я делаю многострочные вставки, когда могу, просто потому, что это уменьшает количество циклов между БД и приложением. Однако мне было любопытно, есть ли другие преимущества? Например, если несколько строк вставляются одновременно, как это: insert into tbl (c1, c2) values (v1, v2) (v3, v4) против: insert into tbl …

1
OPTION FORCE ORDER повышает производительность, пока строки не будут удалены
У меня есть несколько сложный запрос SQL Server 2008 (около 200 строк довольно плотного SQL), который не выполнялся так, как мне было нужно. Со временем производительность упала с примерно 0,5 секунды до примерно 2 секунд. Взглянув на план выполнения, стало совершенно очевидно, что путем изменения порядка соединений производительность может быть …

2
SQL Server оценивает функции один раз для каждой строки?
У меня есть такой запрос: SELECT col1 FROM MyTable WHERE DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) BETWEEN col2 AND col3 ; Это дает всплывающую подсказку о плане выполнения, подобную этой: Выполняется ли dateaddчасть предикатов поиска для каждой строки в запросе? Или SQL Server вычисляет значение один раз для всего запроса?

1
Преимущества выполнения запроса OPTIMIZE TABLE в MySQL DB Server
Я хотел бы знать, какие преимущества [действительно практические] можно получить, запустив OPTIMIZE TABLE tbl_nameзапрос в MySQL Server. Я проверил это один раз и обнаружил, что после того, как это будет выполнено, следующее попадание в БД может занять много времени из-за перемещения фрагментов или около того, но последующие попадания показывают вид …

3
Как Yelp эффективно рассчитывает расстояние в базе данных?
Например, скажем, у меня есть таблица: Business(BusinessID, Lattitude, Longitude) Все индексируются, конечно. Также есть 1 миллион записей Скажем, я хочу найти предприятия, близкие к 106,5, например, как бы я это сделал? Если я сделаю SELECT * FROM Business WHERE (Some formula to compute distance here) < 2000 например, или если …

4
Как я могу оптимизировать этот запрос MySQL дальше?
У меня есть запрос, который занимает особенно много времени (15+ секунд), и он только ухудшается со временем по мере роста моего набора данных. Я оптимизировал это в прошлом и добавил индексы, сортировку на уровне кода и другие оптимизации, но это требует некоторой дальнейшей доработки. SELECT sounds.*, avg(ratings.rating) AS avg_rating, count(ratings.rating) …


2
Очень похожие запросы, очень разная производительность
У меня два очень похожих запроса Первый запрос: SELECT count(*) FROM Audits a JOIN AuditRelatedIds ari ON a.Id = ari.AuditId WHERE ari.RelatedId = '1DD87CF1-286B-409A-8C60-3FFEC394FDB1' and a.TargetTypeId IN (1,2,3,4,5,6,7,8,9, 11,12,13,14,15,16,17,18,19, 21,22,23,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39, 41,42,43,44,45,46,47,48,49, 51,52,53,54,55,56,57,58,59, 61,62,63,64,65,66,67,68,69, 71,72,73,74,75,76,77,78,79) Результат: 267479 План: https://www.brentozar.com/pastetheplan/?id=BJWTtILyS Второй запрос: SELECT count(*) FROM Audits a JOIN AuditRelatedIds ari ON …

1
«Предупреждения: операция вызвала остаточный ввод-вывод» в сравнении с поиском по ключевым словам
Я видел это предупреждение в планах выполнения SQL Server 2017: Предупреждения: Операция вызвала остаточный IO [sic]. Фактическое количество прочитанных строк было (3,321,318), но количество возвращенных строк было 40. Вот фрагмент из SQLSentry PlanExplorer: Чтобы улучшить код, я добавил некластеризованный индекс, чтобы SQL Server мог получить доступ к соответствующим строкам. Он …

2
REBUILD - Кластерный индекс, ТАБЛИЦА или оба?
У меня проблемы с поиском окончательного источника информации об этом где-либо, так что, надеюсь, гуру может дать мне ответ здесь. У меня есть очень большая таблица, к которой мы должны были добавить столбец. Кластерный индекс довольно сильно фрагментирован, и я хочу сделать это, ALTER INDEX REBUILDчтобы очистить его. Я также …

2
Почему этот рекурсивный CTE с параметром не использует индекс, когда он использует литерал?
Я использую рекурсивный CTE в древовидной структуре, чтобы перечислить всех потомков определенного узла в дереве. Если я напишу значение литерального узла в своем WHEREпредложении, SQL Server фактически применяет CTE только к этому значению, предоставляя план запроса с низким фактическим числом строк и так далее : Однако, если я передаю значение …

1
Изменил ли Microsoft оптимизатор запросов относительно количества файлов и параллелизма?
Microsoft изменила оптимизатор запросов относительно количества файлов и параллелизма? Разве оптимизатор больше не учитывает количество файлов для определения степени параллелизма запроса? Если так, кто-нибудь знает, когда было сделано изменение? Если нет, может ли кто-нибудь предоставить ссылку на документацию Microsoft, в которой обсуждается эта тема (текущая документация для SQL Server 2014 …

4
Самый эффективный способ вызова одной и той же табличной функции для нескольких столбцов в запросе
Я пытаюсь настроить запрос, в котором одна и та же табличная функция (TVF) вызывается для 20 столбцов. Первым делом я преобразовал скалярную функцию во встроенную табличную функцию. Используется CROSS APPLYли наилучший способ выполнения одной и той же функции для нескольких столбцов в запросе? Упрощенный пример: SELECT Col1 = A.val ,Col2 …

1
SQLite3 не использует закрывающий индекс с выражением json_extract
Я пытаюсь создать индекс в SQLite3(3.18), используя json_extractвыражения. Моя цель состоит в том, чтобы выполнять запросы, которые требуют только индекса для получения результатов. Причина этого заключается в том, что json_extractэто дорогостоящая операция, которая может снизить производительность при работе с большими наборами данных и / или значениями. Я пришел к выводу, …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.