Администраторы базы данных

9
Что это значит, когда у вас есть «sql_exit_invoked» в System Health?

У меня проблемы с одним из моих серверов SQL Server 2016 Standard. У меня 8 рабочих серверов, и этот единственный, который случайно падает, не имея никаких следов в журнале. У меня включена система system_health. Я заметил, что у меня в строке здоровья системы есть строка "sql_exit_invoked". Я...

9
Статистика исчезает / пусто случайным образом в течение дня

У меня есть база данных SQL Server 2017 (CU9), в которой обнаружены некоторые проблемы с производительностью, которые, как мне кажется, связаны со статистикой индекса. Во время устранения неполадок я обнаружил, что статистика не была обновлена ​​(то есть DBCC SHOW_STATISTICS будет возвращать все...

9
Используется ли ключевое слово «ALIAS»?

Согласно PostgreSQL с 7.1 по 9.1 (в настоящее время не поддерживается), ALIASуказывается как зарезервированное слово, по крайней мере, для SQL-99. Более поздние версии не показывают это - предполагая, что оно было отброшено как зарезервированное слово. Старые документы PostgreSQL говорят, что...

9
Отсутствует некластеризованный индекс, уже являющийся частью кластерного индекса

Я отлаживаю медленно выполняющийся запрос, и в плане выполнения предлагается некластеризованный индекс с воздействием 51.6648. Однако некластеризованный индекс включает только столбцы, которые уже находятся в составном кластерном индексе с первичным ключом (PK). Может ли это быть из-за порядка...

9
Нормализована ли таблица без первичного ключа?

На лекции мой лектор показал нам стол без первичного ключа. На вопрос он сказал, что в 3NF при удалении транзитивных зависимостей нормально иметь таблицу без первичного ключа. Однако ни один первичный ключ не означает, что функциональных зависимостей нет - но 3NF - это удаление транзитивных...

9
Решение для присвоения уникальных значений строкам с конечным расстоянием сотрудничества

У меня есть таблица, которую можно создать и заполнить следующим кодом: CREATE TABLE dbo.Example(GroupKey int NOT NULL, RecordKey varchar(12) NOT NULL); ALTER TABLE dbo.Example ADD CONSTRAINT iExample PRIMARY KEY CLUSTERED(GroupKey ASC, RecordKey ASC); INSERT INTO dbo.Example(GroupKey, RecordKey)...

9
SQL Server: покрытие индексов, включая все столбцы?

Наша команда унаследовала приложение и связанную базу данных. Предыдущие разработчики, по-видимому, применяли правило, согласно которому в каждом индексе каждой таблицы есть предложение INCLUDE, чтобы всегда добавлять каждый столбец, который иначе не является частью ключа. Эти таблицы имеют в...

9
SQL сбрасывает все страницы из буферного кэша каждые несколько минут

У меня есть один узел SQL2012 SP4 с несколькими базами данных. На сервере доступно 20 ГБ памяти, 14 ГБ выделено для SQL (больше ничего не работает на коробке). Каждые несколько минут SQL сбрасывает весь буферный кеш. Ожидаемая продолжительность жизни страницы равна нулю, дескрипторы буферного кэша...

9
Как я могу избавиться от бесполезной параллельной ветки при отмене поворота одной строки?

Рассмотрим следующий запрос, который разворачивает несколько горстей скалярных агрегатов: SELECT A, B FROM ( SELECT MAX(CASE WHEN ID = 1 THEN 1 ELSE 0 END) VAL1 , MAX(CASE WHEN ID = 2 THEN 1 ELSE 0 END) VAL2 , MAX(CASE WHEN ID = 3 THEN 1 ELSE 0 END) VAL3 , MAX(CASE WHEN ID = 4 THEN 1 ELSE 0 END)...

9
Видимо, моя функция сборки CLR вызывает тупики?

Наше приложение должно одинаково хорошо работать с базой данных Oracle или базой данных Microsoft SQL Server. Чтобы облегчить это, мы создали несколько UDF для гомогенизации нашего синтаксиса запроса. Например, в SQL Server есть GETDATE (), а в Oracle - SYSDATE. Они выполняют одну и ту же функцию,...

9
функция для получения ввода символов и формата даты возврата (при неправильном вводе)

Мне нужно написать функцию, чтобы получить символ строки и вернуть формат даты. Например, ввод 20120101 и мне нужно это 2012-01-01. Проблема в том, что могут быть некоторые неверные данные, такие как «2012ABCD». В этом случае я хочу, чтобы функция возвращала фиксированную дату, такую ​​как...

9
Разрешает ли SQL Server (делает видимым) DDL внутри транзакции до транзакции перед фиксацией?

В PostgreSQL я могу создать таблицу с некоторыми тестовыми данными, а затем в транзакции перенести ее в новый столбец другого типа, что приведет к перезаписи одной таблицы COMMIT, CREATE TABLE foo ( a int ); INSERT INTO foo VALUES (1),(2),(3); С последующим, BEGIN; ALTER TABLE foo ADD COLUMN b...

9
журнал транзакций в оперативной памяти или физический файл?

Я новичок в транзакции, просто вопрос по журналу транзакций. Мы знаем, что когда мы фиксируем транзакцию, изменения записываются в журнал транзакций, но находится ли журнал транзакций в ОЗУ или физических файлах? Если он находится в ОЗУ и когда происходит сбой системы, очевидно, что ОЗУ будет...

9
Удаляет ли SELECT мертвые строки, как VACUUM?

Я возился с VACUUMи заметил некоторое неожиданное поведение, когда SELECTизвлечение строк из таблицы, кажется, сокращает объем работы, VACUUMкоторую необходимо выполнить впоследствии. Тестовые данные Примечание: автовакуум отключен CREATE TABLE numbers (num bigint); ALTER TABLE numbers SET (...

9
Почему в этом запросе отсутствует предложение FROM, а не ошибка?

Итак, у нас есть запрос с подзапросом, в котором есть опечатка. В нем отсутствует предложение FROM. Но когда вы запускаете его, это не ошибка! Почему!? SELECT 1 ,r.id ,'0D4133BE-C1B5-4141-AFAD-B171A2CCCE56' ,GETDATE() ,1 ,'Y' ,'N' ,oldItem.can_view ,oldItem.can_update FROM Role r JOIN RoleObject...

9
Очень похожие запросы, очень разная производительность

У меня два очень похожих запроса Первый запрос: SELECT count(*) FROM Audits a JOIN AuditRelatedIds ari ON a.Id = ari.AuditId WHERE ari.RelatedId = '1DD87CF1-286B-409A-8C60-3FFEC394FDB1' and a.TargetTypeId IN (1,2,3,4,5,6,7,8,9, 11,12,13,14,15,16,17,18,19, 21,22,23,24,25,26,27,28,29,30,...

9
для вывода в формате XML ('')

Когда я запускаю следующее select t.type from (values ('Green'),('Blue'),('Red')) as t(type) for xml path('') Я получаю этот вывод <type>Green</type> <type>Blue</type> <type>Red</type> Если я запускаю следующее select t.type + '/' from (values...

9
Как работает триггер T-SQL, который срабатывает только при реальных изменениях?

У меня есть триггер таблицы на UPDATE и INSERT, который добавляет строку в другую таблицу. Нужно только добавить строку, если один из четырех столбцов изменился. Я попытался использовать IF UPDATE (col) для проверки изменений, но у него есть слепое пятно. Это только проверяет, что вошло какое-то...