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

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

6
Как определить, нужен ли индекс или необходим
Я запускаю инструмент автоматического индексирования в нашей базе данных MS SQL (я изменил скрипт, созданный Microsoft, который просматривает таблицы статистики индекса - Automated Auto Indexing ). Из статистики у меня теперь есть список рекомендаций для индексов, которые нужно создать. Редактировать: описанные выше индексы берут информацию из DMV, которая сообщает вам, …

4
Оптимизация запросов по диапазону временных отметок (два столбца)
Я использую PostgreSQL 9.1 на Ubuntu 12.04. Мне нужно выбрать записи за определенный промежуток времени: в моей таблице time_limitsесть два timestampполя и одно integerсвойство. В моей фактической таблице есть дополнительные столбцы, которые не связаны с этим запросом. create table ( start_date_time timestamp, end_date_time timestamp, id_phi integer, primary key(start_date_time, end_date_time,id_phi); Эта …

3
Когда использовать представления в MySQL?
Когда при создании таблиц из нескольких объединений для использования в анализе предпочтительнее использовать представления, а не создавать новую таблицу? Одна из причин, по которой я предпочел бы использовать представления, заключается в том, что схема базы данных была разработана нашим администратором из Ruby, и я не знаком с Ruby. Я могу …

4
Вредны ли представления для производительности в PostgreSQL?
Ниже приведен отрывок из книги о дизайне БД (Начальный номер базы данных ISBN: 0-7645-7490-6): Опасность использования представлений заключается в фильтрации запроса к представлению, ожидающего чтения очень маленькой части очень большой таблицы. Любая фильтрация должна выполняться в представлении, поскольку любая фильтрация для самого представления применяется после того, как запрос в представлении …

3
Неожиданные сканирования во время операции удаления с использованием WHERE IN
У меня есть запрос, подобный следующему: DELETE FROM tblFEStatsBrowsers WHERE BrowserID NOT IN ( SELECT DISTINCT BrowserID FROM tblFEStatsPaperHits WITH (NOLOCK) WHERE BrowserID IS NOT NULL ) tblFEStatsBrowsers получил 553 строки. У tblFEStatsPaperHits есть 47,974,301 строк. tblFEStatsBrowsers: CREATE TABLE [dbo].[tblFEStatsBrowsers]( [BrowserID] [smallint] IDENTITY(1,1) NOT NULL, [Browser] [varchar](50) NOT NULL, [Name] …

2
Как (и почему) TOP влияет на план выполнения?
Для довольно сложного запроса, который я пытаюсь оптимизировать, я заметил, что удаление TOP nпредложения меняет план выполнения. Я бы предположил, что когда запрос включает TOP nв себя механизм базы данных, он будет запускать запрос, игнорируя TOPпредложение, а затем в конце просто сократит этот результат до n запрошенных строк. Графический план …

1
Конструкция USING в предложении JOIN может вводить барьеры оптимизации в определенных случаях?
Мне стало известно, что USINGконструкция (вместо ON) в FROMпредложении SELECTзапросов может в некоторых случаях вводить барьеры оптимизации. Я имею в виду это ключевое слово: ВЫБРАТЬ * Из ПРИСОЕДИНЯЙТЕСЬ К ИСПОЛЬЗОВАНИЮ (a_id) Просто в более сложных случаях. Контекст: этот комментарий к этому вопросу . Я использую это много и никогда не …

5
Логические операторы ИЛИ И в условии и порядке условий в ГДЕ
Давайте рассмотрим эти два утверждения: IF (CONDITION 1) OR (CONDITION 2) ... IF (CONDITION 3) AND (CONDITION 4) ... Если CONDITION 1есть TRUE, будет CONDITION 2проверено? Если CONDITION 3есть FALSE, будет CONDITION 4проверено? Как насчет условий на WHERE: оптимизирует ли ядро ​​SQL Server все условия в WHEREпредложении? Должны ли программисты …

2
Оптимизация запроса Postgres с большим IN
Этот запрос получает список сообщений, созданных людьми, на которых вы подписаны. Вы можете следить за неограниченным числом людей, но большинство людей следуют <1000 других. При таком стиле запросов очевидной оптимизацией будет кэширование "Post"идентификаторов, но, к сожалению, сейчас у меня нет на это времени. EXPLAIN ANALYZE SELECT "Post"."id", "Post"."actionId", "Post"."commentCount", ... …

4
Почему ориентировочная стоимость (одинаковых) 1000 поисков по уникальному индексу отличается в этих планах?
В нижеприведенных запросах оба плана выполнения оцениваются в 1000 запросов на уникальный индекс. Поиски управляются упорядоченным сканированием одной и той же исходной таблицы, поэтому, по-видимому, в конечном итоге следует искать одинаковые значения в том же порядке. Обе вложенные циклы имеют <NestedLoops Optimized="false" WithOrderedPrefetch="true"> Кто-нибудь знает, почему эта задача стоит 0,172434 …

5
Почему мой запрос SELECT DISTINCT TOP N сканирует всю таблицу?
Я столкнулся с несколькими SELECT DISTINCT TOP Nзапросами, которые, по-видимому, плохо оптимизированы оптимизатором запросов SQL Server. Давайте начнем с рассмотрения тривиального примера: таблица миллионов строк с двумя чередующимися значениями. Я буду использовать функцию GetNums для генерации данных: DROP TABLE IF EXISTS X_2_DISTINCT_VALUES; CREATE TABLE X_2_DISTINCT_VALUES (PK INT IDENTITY (1, 1), …

3
SQL Server разделяет A <> B на A <B ИЛИ A> B, получая странные результаты, если B недетерминирован
Мы столкнулись с интересной проблемой с SQL Server. Рассмотрим следующий пример repro: CREATE TABLE #test (s_guid uniqueidentifier PRIMARY KEY); INSERT INTO #test (s_guid) VALUES ('7E28EFF8-A80A-45E4-BFE0-C13989D69618'); SELECT s_guid FROM #test WHERE s_guid = '7E28EFF8-A80A-45E4-BFE0-C13989D69618' AND s_guid &lt;&gt; NEWID(); DROP TABLE #test; играть на скрипке Пожалуйста, забудьте на мгновение, что s_guid &lt;&gt; …

2
Оценка мощности для оператора LIKE (локальные переменные)
У меня сложилось впечатление, что при использовании LIKEоператора во всех операциях оптимизации для неизвестных сценариев как устаревшие, так и новые CE используют оценку в 9% (при условии, что доступны соответствующие статистические данные и оптимизатору запросов не приходится прибегать к догадкам селективности). Выполняя приведенный ниже запрос к базе данных кредитов, я …

1
Почему этот запрос не использует катушку индекса?
Я задаю этот вопрос, чтобы лучше понять поведение оптимизатора и понять ограничения вокруг катушек индекса. Предположим, что я положил целые числа от 1 до 10000 в кучу: CREATE TABLE X_10000 (ID INT NOT NULL); truncate table X_10000; INSERT INTO X_10000 WITH (TABLOCK) SELECT TOP 10000 ROW_NUMBER() OVER (ORDER BY (SELECT …

1
Определяется ли поведение ограничения оптимизации для запроса CTE (WITH) в стандарте SQL: 2008? Если да, то где?
Я вижу частые ссылки на WITHзапросы (обычные табличные выражения или CTE), выступающие в качестве ограждения оптимизации, когда серверу не разрешается вставлять фильтры в запросы CTE, извлекать общие выражения из CTE и т. Д. Часто утверждается поведение, требуемое стандартами SQL. CTE, безусловно, являются забором оптимизации в PostgreSQL ... но требуется ли …

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