Вопросы с тегом «sql-server»

Все версии Microsoft SQL Server (не MySQL). Также добавьте тег для конкретной версии, например sql-server-2016, поскольку он часто имеет отношение к вопросу.

4
Что лучше для больших изменений в таблице: DELETE и INSERT каждый раз или UPDATE существующих?
Я делаю проект, в котором мне нужно ежедневно менять около 36 тысяч записей в одной таблице. Мне интересно, что будет работать лучше: удалить строки и вставить новые, или обновить уже существующие строки Для меня проще просто удалить все строки и вставить новые, но если это приведет к фрагментации таблицы и …

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; …

1
Логическое чтение отличается при доступе к одним и тем же данным большого объекта
Вот три простых теста, которые читают одни и те же данные, но сообщают об очень разных логических чтениях: Настроить Следующий скрипт создает тестовую таблицу с 100 одинаковыми строками, каждая из которых содержит столбец xml с достаточным количеством данных, чтобы обеспечить его сохранение вне строки. В моей тестовой базе данных длина …

4
Журнал транзакций для базы данных «database_name» переполнен из-за «XTP_CHECKPOINT»
У меня есть вопрос по поводу XTP_CHECKPOINT. Я использую SQL Server 2014. У меня есть база данных, которая находится в режиме модели восстановления SIMPLE. Это также копируется. Нет открытых транзакций. Я побежал, DBCC OPENTRANи он возвращается: "Нет активных открытых транзакций." Но я продолжаю получать это сообщение всякий раз, когда пытаюсь …

2
Почему функция LEN () сильно недооценивает количество элементов в SQL Server 2014?
У меня есть таблица со строковым столбцом и предикатом, который проверяет строки определенной длины. В SQL Server 2014 я вижу оценку в 1 строку независимо от длины, которую я проверяю. Это приводит к очень плохим планам, потому что на самом деле есть тысячи или даже миллионы строк, и SQL Server …


2
Проблема оптимизации с пользовательской функцией
Этот вопрос был перенесен из переполнения стека, поскольку на него можно ответить в Exchange Stack Exchange для администраторов баз данных. Мигрировал 4 года назад . У меня проблема с пониманием того, почему SQL-сервер решает вызывать пользовательскую функцию для каждого значения в таблице, даже если нужно выбрать только одну строку. Реальный …

2
Как профилировать хранимые процедуры
Я использую SQL Server 2012 и мне было интересно, как профилировать хранимые процедуры Например, может ли профилировщик захватить каждый отдельный оператор SQL в хранимой процедуре, что это такое, и сколько времени требуется для выполнения и т. Д.? Я пытаюсь диагностировать хранимые процедуры репликации слиянием, и это должно быть частью полного …

2
Как написать запрос, который находит все циклические ссылки, когда таблица ссылается на себя?
У меня есть следующая схема (имена изменены), которую я не могу изменить: CREATE TABLE MyTable ( Id INT NOT NULL PRIMARY KEY, ParentId INT NOT NULL ); ALTER TABLE MyTable ADD FOREIGN KEY (ParentId) REFERENCES MyTable(Id); То есть каждая запись является дочерней по отношению к другой записи. Если запись ParentIdравна …

4
Когда использовать CDC для отслеживания истории?
Сбор данных изменений SQL Server - это функция, которая считывает исторические данные из журналов транзакций SQL Server и сохраняет их в специальной таблице. Благодаря использованию специальных функций табличных значений (TVF) он позволяет пользователю запрашивать эти данные, делая возможным либо получить все изменения в конкретной таблице, либо только чистые изменения, которые …

6
Размер базы данных SQL Server не уменьшился после удаления большого количества строк.
Этот вопрос был перенесен из Super User, поскольку на него можно ответить в Exchange Stack Exchange для администраторов баз данных. Мигрировал 7 лет назад . Я плохо разбираюсь в SQL, но у меня есть база данных для обслуживания. Для этого почти не осталось места, поэтому я решил удалить все данные, …

2
Как найти операторы SQL, которые вызвали рост базы данных?
Tempdb сервера (SQL Server 2008) увеличивается до 500 ГБ + несколько раз в месяц. Можно ли узнать, какие операторы SQL вызвали эту проблему? Проблема, как правило, не вызвана create table #temp...; insert into #temp...или select ... into #temp...сложна. Исходный размер некоторых TempDb файлов также автоматически устанавливается в гораздо больших значений …

3
Что такое уровень изоляции «Хаос» и когда его следует использовать?
В документации ADO.NET показана возможность установки уровня транзакции для транзакции SQL в Chaos. Это звучит неприятно, но если эта функция есть, возможно, она имеет законное применение. Команда SET TRANSACTION ISOLATION LEVEL в BOL (ах! Видите, я могу использовать google и BOL), кажется, ничто не названо "хаос", и ADO.NET имеет 5 …

2
Как узнать, когда / если у меня слишком много индексов?
Время от времени запускается Microsoft SQL Server Profiler, он предлагает мне кучу новых индексов и статистику для создания («... 97% оценки улучшения ...»). Насколько я понимаю, каждый добавленный индекс может сделать SELECTзапрос SQL быстрее, но также UPDATEили INSERTзапрос медленнее, так как индексы должны быть скорректированы. Интересно, когда у меня «слишком …

3
Можно ли восстановить sql-сервер bak и сжать журнал одновременно?
У нас есть файл bak от клиента, который мы передали в наши офисы разработчиков для расследования проблем. Резервная копия в настоящее время составляет 25 ГБ, а восстановленная база данных имеет примерно такой же размер, однако для ее восстановления требуется 100 ГБ. Я считаю, что это потому, что база данных настроена …

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