Вопросы с тегом «query-performance»

По вопросам повышения производительности и / или эффективности запросов к базе данных.

4
Может ли пространственный индекс помочь в запросе «диапазон - порядок - предел»
Задавая этот вопрос, специально для Postgres, так как он имеет хорошую поддержку для R-дерева / пространственных индексов. У нас есть следующая таблица с древовидной структурой (модель Nested Set) слов и их частотами: lexikon ------- _id integer PRIMARY KEY word text frequency integer lset integer UNIQUE KEY rset integer UNIQUE KEY …

2
Использование индексированных представлений для агрегатов - слишком хорошо, чтобы быть правдой?
У нас есть хранилище данных с довольно большим количеством записей (10-20 миллионов строк), и мы часто выполняем запросы, которые подсчитывают записи между определенными датами или подсчитывают записи с определенными флагами, например SELECT f.IsFoo, COUNT(*) AS WidgetCount FROM Widgets AS w JOIN Flags AS f ON f.FlagId = w.FlagId WHERE w.Date …

2
Как справиться с неправильным планом запроса, вызванным точным равенством по типу диапазона?
Я выполняю обновление, где мне требуется точное равенство для tstzrangeпеременной. Изменено ~ 1M строк, а запрос занимает ~ 13 минут. Результат EXPLAIN ANALYZEможно увидеть здесь , и фактические результаты чрезвычайно отличаются от тех, которые оцениваются планировщиком запросов. Проблема заключается в том, что при сканировании индекса t_rangeожидается возврат одной строки. Похоже, …

3
Оптимизируются ли представления, когда я добавляю к ним предложение WHERE?
Имеет ли значение, если вы фильтруете представление внутри или снаружи представления? Например, есть ли разница между этими двумя запросами? SELECT Id FROM MyTable WHERE SomeColumn = 1 Или SELECT Id FROM MyView WHERE SomeColumn = 1 И MyViewопределяется как SELECT Id, SomeColumn FROM MyTable И отличается ли ответ, если исходная …

2
Какой самый быстрый способ вставить большое количество строк?
У меня есть база данных, в которую я загружаю файлы в промежуточную таблицу, из этой промежуточной таблицы у меня есть 1-2 соединения, чтобы разрешить некоторые внешние ключи, а затем вставить эти строки в итоговую таблицу (которая имеет один раздел в месяц). У меня есть около 3,4 миллиарда строк за три …

1
SQL Server 2014: есть ли какое-либо объяснение непоследовательной оценки количества участников самостоятельного объединения?
Рассмотрим следующий план запросов в SQL Server 2014: В плане запроса самосоединение ar.fId = ar.fIdдает оценку в 1 строку. Однако это логически противоречивая оценка: arсодержит 20,608строки и только одно отдельное значение fId(точно отраженное в статистике). Следовательно, это соединение создает полный перекрестный продукт строк ( ~424MMстрок), в результате чего запрос выполняется …

3
Хранимые процедуры и встроенный SQL
Я знаю, что хранимые процедуры более эффективны через путь выполнения (чем встроенный SQL в приложениях). Тем не менее, когда нажата, я не супер знаю, почему. Я хотел бы знать технические причины этого (таким образом, чтобы я мог объяснить это кому-то позже). Может ли кто-нибудь помочь мне сформулировать хороший ответ?

1
Индексы: целое число против производительности строки, если число узлов одинаково
Я занимаюсь разработкой приложения на Ruby on Rails с базой данных PostgreSQL (9.4). Для моего варианта использования столбцы в таблицах будут просматриваться очень часто, поскольку весь смысл приложения заключается в поиске очень специфических атрибутов в модели. В настоящее время я решаю, использовать ли integerтип или просто использовать типичный строковый тип …

5
Предложение SARGable WHERE для двух столбцов даты
У меня есть интересный вопрос о SARGability. В данном случае речь идет об использовании предиката разницы между двумя столбцами даты. Вот настройки: USE [tempdb] SET NOCOUNT ON IF OBJECT_ID('tempdb..#sargme') IS NOT NULL BEGIN DROP TABLE #sargme END SELECT TOP 1000 IDENTITY (BIGINT, 1,1) AS ID, CAST(DATEADD(DAY, [m].[severity] * -1, GETDATE()) …

1
Ищите, и вы должны сканировать ... на многораздельных
Я прочитал эти статьи в PCMag Ицик Бен-Ган : Ищите и вы сканируете Часть I: когда оптимизатор не оптимизирует Ищите и вы сканируете Часть II: восходящие ключи В настоящее время у меня проблема «Сгруппированный Макс» со всеми нашими секционированными таблицами. Мы используем трюк, который Ицик Бен-Ган предоставил для получения максимума …

2
LIKE использует индекс, CHARINDEX нет?
Этот вопрос связан с моим старым вопросом . Приведенный ниже запрос занимал от 10 до 15 секунд: SELECT [customer].[Customer name],[customer].[Sl_No],[customer].[Id] FROM [company].dbo.[customer] WHERE (Charindex('123456789',CAST([company].dbo.[customer].[Phone no] AS VARCHAR(MAX)))>0) В некоторых статьях я видел, что использую CASTи CHARINDEXне получу выгоды от индексации. Есть также некоторые статьи, в которых говорится, что использование LIKE …

1
SQL-запрос для комбинаций без повторения
Мне нужен запрос, который можно использовать в (или в качестве) функции и получить все комбинации из n значений. И мне нужны все комбинации длины k, где k = 1..n. Расширенный выборочный ввод и результат, так что вход имеет 3 значения вместо 2 - однако количество входных значений может варьироваться от …

1
Ключи хеша пробные и остаточные
Скажем, у нас есть такой запрос: select a.*,b.* from a join b on a.col1=b.col1 and len(a.col1)=10 Предполагая, что вышеупомянутый запрос использует Hash Join и имеет остаток, ключ пробника будет col1и остаток будет len(a.col1)=10. Но, просматривая другой пример, я мог видеть и зонд, и остаток как один и тот же столбец. …

4
Рекомендации по диагностике «иногда» медленного запроса
У меня есть хранимая процедура, которая возвращает результаты из индексированного представления через индекс покрытия. Обычно он работает быстро (~ 10 мс), иногда он может работать до 8 секунд. Вот пример случайного выполнения (примечание: это не медленное выполнение, но текст запроса не отличается от значения, переданного через): declare @p2 dbo.IdentityType insert …

2
Почему оператор конкатенации оценивает меньше строк, чем его входные данные?
В следующем фрагменте плана запроса кажется очевидным, что Concatenationдолжна быть оценка строки для оператора ~4.3 billion rowsили сумма оценок строки для двух входных данных. Тем не менее, оценка ~238 million rowsпроизводится, что приводит к неоптимальным Sort/ Stream Aggregateстратегии , которая переливается сотни ГБ данных базе данных TempDb. Логически непротиворечивая оценка …

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