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

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

2
Как ускорить выделение отличного?
У меня есть простой выбор различных данных временных рядов: SELECT DISTINCT user_id FROM events WHERE project_id = 6 AND time > '2015-01-11 8:00:00' AND time < '2015-02-10 8:00:00'; И это занимает 112 секунд. Вот план запроса: http://explain.depesz.com/s/NTyA Мое приложение должно предварительно выполнить множество различных операций и рассчитывать, как это. Есть …

1
Когда предикаты SARGable могут быть помещены в CTE или производную таблицу?
принуждать Работая над Top Quality Blog Posts®, я столкнулся с поведением оптимизатора, которое показалось мне действительно невероятно интересным. У меня нет немедленного объяснения, по крайней мере, не того, чем я доволен, поэтому я привожу его здесь на случай, если кто-то умный появится Если вы хотите продолжить, вы можете получить версию …

2
Запрос на присоединение занимает 11 минут для выполнения таблицы 300 000 строк
Ниже запрос занимает более 11 минут для выполнения. SELECT `c`.*, `e`.`name` AS `employee_name`, `e`.`emp_no`, `d`.`code` AS `department_code`, IF(ew.code IS NOT NULL, ew.code, egw.code) AS shift_code, IF(ew.code IS NOT NULL, ew.time_in_from, egw.time_in_from) AS time_in_from, IF(ew.code IS NOT NULL, ew.time_out_to, egw.time_out_to) AS time_out_to, IF(ew.code IS NOT NULL, ew.next_day, egw.next_day) AS next_day FROM …

3
Почему мой запрос EXISTS выполняет сканирование индекса вместо поиска индекса?
Я работаю над оптимизацией некоторых запросов. Для запроса ниже SET STATISTICS IO ON; DECLARE @OrderStartDate DATETIME2 = '27 feb 2016'; DECLARE @OrderEndDate DATETIME2 = '28 feb 2016'; SELECT o.strBxOrderNo , o.sintOrderStatusID , o.sintOrderChannelID , o.sintOrderTypeID , o.sdtmOrdCreated , o.sintMarketID , o.strOrderKey , o.strOfferCode , o.strCurrencyCode , o.decBCShipFullPrice , o.decBCShipFinal , …

2
Почему оценки строк SQL Server меняются, когда я добавляю подсказку о соединении?
У меня есть запрос, который объединяет несколько таблиц и выполняет его довольно плохо - оценки строк удалены (в 1000 раз) и выбрано объединение Nested Loops, что приводит к нескольким сканированиям таблиц. Форма запроса довольно проста, выглядит примерно так: SELECT t1.id FROM t1 INNER JOIN t2 ON t1.id = t2.t1_id LEFT …

2
Занимает ли пустое значение столбца то же пространство памяти, что и значение заполненного столбца?
У меня есть таблица с 2 столбцами. Тип обоих столбцов установлен в varchar(38). Если я создам строку с пустым значением для одного из столбцов, будет ли она занимать такое же место для хранения, как если бы это значение не было пустым? Другими словами, будет ли MySQL резервировать место для хранения …

2
Индекс для сохраняемого вычисляемого столбца недоступен для поиска
У меня есть таблица с именем Address, которая имеет сохраненный вычисляемый столбец с именем Hashkey. Столбец является детерминированным, но не точным. У него есть уникальный индекс, который нельзя найти. Если я запускаю этот запрос, возвращая первичный ключ: SELECT @ADDRESSID= ISNULL(AddressId,0) FROM dbo.[Address] WHERE HashKey = @HashKey Я получаю этот план: …

1
Почему оператор агрегирования используется после сканирования уникального индекса
У меня есть таблица с уникальным индексом, отфильтрованным для ненулевых значений. В плане запроса есть использование различных. Есть причина для этого? USE tempdb CREATE TABLE T1( Id INT NOT NULL IDENTITY PRIMARY KEY ,F1 INT , F2 INT ) go CREATE UNIQUE NONCLUSTERED INDEX UK_T1 ON T1 (F1,F2) WHERE F1 …

3
Индексы для SQL-запроса с условием WHERE и GROUP BY
Я пытаюсь определить, какие индексы использовать для запроса SQL с WHEREусловием, а GROUP BYкоторый в настоящее время работает очень медленно. Мой запрос: SELECT group_id FROM counter WHERE ts between timestamp '2014-03-02 00:00:00.0' and timestamp '2014-03-05 12:00:00.0' GROUP BY group_id В настоящее время таблица содержит 32 000 000 строк. Время выполнения …

3
Оптимизация иерархии CTE
Обновление ниже У меня есть таблица учетных записей с типичной архитектурой учетных записей acct / parent для представления иерархии учетных записей (SQL Server 2012). Я создал VIEW, используя CTE для хэширования иерархии, и в целом он работает прекрасно и по назначению. Я могу запросить иерархию на любом уровне и легко …

2
Как оптимизировать запрос T-SQL с использованием плана выполнения
У меня есть SQL-запрос, который я провел последние два дня, пытаясь оптимизировать, используя метод проб и ошибок и план выполнения, но безрезультатно. Пожалуйста, прости меня за это, но я опубликую весь план выполнения здесь. Я приложил усилия, чтобы сделать имена таблиц и столбцов в запросе и плане выполнения общими для …

3
Почему существуют различия в плане выполнения между OFFSET… FETCH и старой схемой ROW_NUMBER?
Новая OFFSET ... FETCHмодель, представленная в SQL Server 2012, предлагает простую и быструю подкачку страниц. Почему вообще существуют различия, если учесть, что эти две формы семантически идентичны и очень распространены? Можно предположить, что оптимизатор распознает оба и оптимизирует их (тривиально) в полной мере. Вот очень простой случай, когда OFFSET ... …

1
Почему количество выполнений сканирования кластерного индекса так велико?
У меня есть два похожих запроса, которые генерируют один и тот же план запроса, за исключением того, что один план запроса выполняет сканирование кластерного индекса 1316 раз, а другой - 1 раз. Единственная разница между двумя запросами - это разные критерии даты. Долгосрочный запрос фактически сужает критерии даты и тянет …


2
Оптимизация: перемещение объявлений переменных в начало вашей процедуры
Работая над оптимизацией некоторых хранимых процедур, я сел с администратором базы данных и прошел через некоторые хранимые процедуры с высокой блокировкой и / или высокой активностью чтения / записи. DBA упомянул одну вещь: я должен объявить все переменные (особенно TABLEте) в начале хранимой процедуры, чтобы избежать перекомпиляции. Это первое, что …

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