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

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

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

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

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

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

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

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

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

1
Однорядная 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 STATISTICS XML …

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

2
Почему отфильтрованный индекс по значению 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 IX_MyTab_GroupByColumn ON MyTab (GroupByColumn) WHERE (WhereColumn IS NULL) Почему этот индекс не «покрывает» этот …

1
SELECT TOP 1 из очень большой таблицы в столбце индекса выполняется очень медленно, но не в обратном порядке («desc»)
У нас есть большая база данных, около 1 ТБ, на которой работает SQL Server 2014 на мощном сервере. Все работало нормально в течение нескольких лет. Около 2 недель назад мы провели полное обслуживание, которое включало: установку всех обновлений программного обеспечения; перестройте все индексы и компактные файлы БД. Однако мы не …

3
Заключение запроса в IF EXISTS делает его очень медленным
У меня есть запрос ниже: select databasename from somedb.dbo.bigtable l where databasename ='someval' and source <>'kt' and not exists(select 1 from dbo.smalltable c where c.source=l.source) Вышеуказанный запрос завершается за три секунды. Если приведенный выше запрос возвращает какое-либо значение, мы хотим, чтобы хранимая процедура завершила работу, поэтому я переписал его, как …

3
Влияние индекса на операторы обновления, где столбец обновления отсутствует в индексе
Я постоянно вижу, как люди говорят, что индексы замедляются update, deleteи insert. Это используется как общее утверждение, как если бы оно было абсолютным. Настраивая свою базу данных для повышения производительности, я продолжаю сталкиваться с этой ситуацией, которая, кажется, логически противоречит этому правилу для меня, и нигде я не могу найти, …

1
Монументальная разница во времени выполнения между запросами при использовании подсказки запроса RECOMPILE
У меня есть два почти идентичных запроса на одном экземпляре SQL Server 2005: Первый - это оригинальный SELECTзапрос, сгенерированный LINQ (я знаю, я знаю ... я не разработчик приложений, просто администратор БД :). Второй точно такой же, как первый, добавленный OPTION (RECOMPILE)в конце. Больше ничего не изменилось. Первый занимает 55 …

2
Самый эффективный способ получения диапазонов дат
Какой самый эффективный способ получить диапазоны дат с такой структурой таблицы? create table SomeDateTable ( id int identity(1, 1) not null, StartDate datetime not null, EndDate datetime not null ) go Скажем, вы хотите диапазон для обоих StartDateи EndDate. Другими словами, если StartDateмежду @StartDateBeginи @StartDateEnd, и EndDateмежду, @EndDateBeginи между @EndDateEnd, …

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