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

27
Какой самый быстрый способ вставить большое количество строк?

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

27
SQL Server 2014: есть ли какое-либо объяснение непоследовательной оценки количества участников самостоятельного объединения?

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

26
Индексы: целое число против производительности строки, если число узлов одинаково

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

24
Предложение 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,...

22
SQL-запрос для комбинаций без повторения

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

22
Ищите, и вы должны сканировать ... на многораздельных

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

21
Ключи хеша пробные и остаточные

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

20
Почему оператор конкатенации оценивает меньше строк, чем его входные данные?

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

20
Рекомендации по диагностике «иногда» медленного запроса

У меня есть хранимая процедура, которая возвращает результаты из индексированного представления через индекс покрытия. Обычно он работает быстро (~ 10 мс), иногда он может работать до 8 секунд. Вот пример случайного выполнения (примечание: это не медленное выполнение, но текст запроса не отличается...

20
T-SQL запрос использует совершенно другой план в зависимости от количества строк, которые я обновляю

У меня есть оператор SQL UPDATE с предложением «TOP (X)», а строка, в которой я обновляю значения, содержит около 4 миллиардов строк. Когда я использую «TOP (10)», я получаю один план выполнения, который выполняется почти мгновенно, но когда я использую «TOP (50)» или больше, запрос никогда (по...

20
Производительность a = 0 и b = 0 и… z = 0 против a + b + c + d = 0

Это простой вопрос, на который я не могу найти ответ. С точки зрения производительности, если у меня есть такое WHEREусловие a=0 and b=0 and ... z=0, могу ли я получить какую-либо производительность, если я заменю это условие на a+b+...+z=0? Другими словами, есть ли прирост производительности путем...

20
SQL Server - обработка локализации строк во вложенных недетерминированных стеках представлений

При профилировании базы данных я столкнулся с представлением, которое ссылается на некоторые недетерминированные функции, к которым обращаются 1000-2500 раз в минуту для каждого соединения в пуле этого приложения. Простое SELECTпредставление дает следующий план выполнения: Это выглядит как сложный...

20
Огромные данные и производительность в SQL Server

Я написал приложение с бэкэндом SQL Server, которое собирает и хранит огромное количество записей. Я подсчитал, что на пике среднее количество записей составляет где-то на проспекте 3-4 миллиарда в день (20 часов работы). Мое первоначальное решение (до того, как я выполнил фактический расчет...

20
Использование IF в T-SQL ослабляет или нарушает кэширование плана выполнения?

Мне было предложено, чтобы использование операторов IF в пакетах t-SQL отрицательно сказывалось на производительности. Я пытаюсь найти подтверждение или подтвердить это утверждение. Я использую SQL Server 2005 и 2008. Утверждение таково со следующей партией: IF @parameter = 0 BEGIN SELECT ......

19
DEFAULT CONSTRAINT, стоит ли?

Я обычно проектирую свои базы данных по следующим правилам: Никто кроме db_owner и sysadmin не имеет доступа к таблицам базы данных. Роли пользователей контролируются на уровне приложений. Я обычно использую одну роль БД для предоставления доступа к представлениям, хранимым процедурам и функциям,...

19
Принудительный поток

У меня есть такая таблица: CREATE TABLE Updates ( UpdateId INT NOT NULL IDENTITY(1,1) PRIMARY KEY, ObjectId INT NOT NULL ) По сути отслеживание обновлений объектов с возрастающим идентификатором. Потребитель этой таблицы выберет блок из 100 различных идентификаторов объектов, упорядоченных...

18
Почему отфильтрованный индекс по значению IS NULL не используется?

Предположим, у нас есть определение таблицы следующим образом: CREATE TABLE MyTab ( ID INT IDENTITY(1,1) CONSTRAINT PK_MyTab_ID PRIMARY KEY ,GroupByColumn NVARCHAR(10) NOT NULL ,WhereColumn DATETIME NULL ) И отфильтрованный некластеризованный индекс, подобный этому: CREATE NONCLUSTERED INDEX...

18
Однорядная INSERT… SELECT намного медленнее, чем отдельный SELECT

Учитывая следующую таблицу кучи с 400 строками, пронумерованными от 1 до 400: DROP TABLE IF EXISTS dbo.N; GO SELECT SV.number INTO dbo.N FROM master.dbo.spt_values AS SV WHERE SV.[type] = N'P' AND SV.number BETWEEN 1 AND 400; и следующие настройки: SET NOCOUNT ON; SET STATISTICS IO, TIME OFF; SET...

18
«SELECT TOP» вопрос производительности

У меня есть запрос, который работает намного быстрее с выбором top 100и намного медленнее без top 100. Количество возвращаемых записей равно 0. Не могли бы вы объяснить разницу в планах запросов или поделиться ссылками, где объясняется такая разница? Запрос без topтекста: SELECT --TOP 100 * FROM...