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

Вопросы и ответы для специалистов по базам данных, которые хотят улучшить свои навыки работы с базами данных и учиться у других в сообществе

2
Индекс для сохраняемого вычисляемого столбца недоступен для поиска
У меня есть таблица с именем Address, которая имеет сохраненный вычисляемый столбец с именем Hashkey. Столбец является детерминированным, но не точным. У него есть уникальный индекс, который нельзя найти. Если я запускаю этот запрос, возвращая первичный ключ: SELECT @ADDRESSID= ISNULL(AddressId,0) FROM dbo.[Address] WHERE HashKey = @HashKey Я получаю этот план: …

2
Одновременные вызовы одной и той же функции: как возникают тупики?
Моя функция new_customerвызывается веб-приложением несколько раз в секунду (но только один раз за сеанс). Самое первое, что он делает, это блокирует customerтаблицу (сделать «вставку, если не существует» - простой вариант upsert). Насколько я понимаю документы , другие вызовы new_customerдолжны просто стоять в очереди, пока все предыдущие вызовы не будут завершены: …

4
Почему ключ должен быть явным?
Я очень плохо знаком с предметом баз данных, так что это может показаться невежественным, но мне любопытно, почему ключ должен быть явно указан в таблице. Это прежде всего для того, чтобы сообщить пользователю, что данное значение столбца (будем надеяться) гарантированно будет уникальным в каждой строке? Уникальность все еще должна быть …

1
Есть ли разница между «LIMIT 0, 1» и «LIMIT 1»?
Недавно я наткнулся на примеры кодов, которые отличались этими обозначениями. SELECT * FROM table LIMIT 0, 1 SELECT * FROM table LIMIT 1 Первый аргумент должен рассматриваться как смещение, если я не ошибаюсь, цель этих двух запросов - ограничить выбор до первой строки table Есть ли какой-либо негативный эффект при …
15 mysql 

4
Как преобразовать ключ в отчете о взаимоблокировке SQL Server в значение?
У меня есть отчет о взаимоблокировке, который сообщает мне, что произошел конфликт с участием waitresource = "KEY: 9: 72057632651542528 (543066506c7c)", и я вижу это: <keylock hobtid="72057632651542528" dbid="9" objectname="MyDatabase.MySchema.MyTable" indexname="MyPrimaryKeyIndex" id="locka8c6f4100" mode="X" associatedObjectId="72057632651542528"> в <список ресурсов>. Я хочу быть в состоянии найти фактическое значение для ключа (id = 12345, например). Какой …

1
sp_cursoropen и параллелизм
Я столкнулся с проблемой производительности с запросом, который, кажется, не может заставить меня задуматься. Я вытащил запрос из определения курсора. Этот запрос занимает несколько секунд, чтобы выполнить SELECT A.JOBTYPE FROM PRODROUTEJOB A WHERE ((A.DATAAREAID=N'IW') AND ((A.CALCTIMEHOURS<>0) AND (A.JOBTYPE<>3))) AND EXISTS (SELECT 'X' FROM PRODROUTE B WHERE ((B.DATAAREAID=N'IW') AND (((((B.PRODID=A.PRODID) AND …

2
Избегайте уникальных нарушений в атомарных транзакциях
Возможно ли создать атомарную транзакцию в PostgreSQL? Считайте, что у меня есть категория таблицы с этими строками: id|name --|--------- 1 |'tablets' 2 |'phones' И имя столбца имеет уникальное ограничение. Если я попробую: BEGIN; update "category" set name = 'phones' where id = 1; update "category" set name = 'tablets' where …

2
Есть ли способ уменьшить / уменьшить размер tempdb.mdf без перезапуска SQL Server
Нужно ли перезапускать SQL Server после DBCC SHRINKFILEвключения tempdb.mdfили есть какой-либо другой способ уменьшить размер tempdb.mdfбез перезапуска SQL Server? Пожалуйста, помогите, так как мне это нужно для производственного сервера, и я надеюсь сделать сжатие без каких-либо простоев.
15 sql-server 

1
Читать частично обновленную строку?
Допустим, у меня есть два запроса, выполняющихся в двух отдельных сеансах в SSMS: Первая сессия: UPDATE Person SET Name='Jonny', Surname='Cage' WHERE Id=42 Вторая сессия: SELECT Name, Surname FROM Person WITH(NOLOCK) WHERE Id > 30 Возможно ли, что SELECTоператор мог прочитать половину обновленной строки, например, с Name = 'Jonny'и Surname = …

2
Запрос списка сертификатов шифрования для баз данных
Какой сертификат используется для шифрования каждой из баз данных в экземплярах. Я могу получить данные, используя следующие, но как мне написать запросы USE master GO -- this provides the list of certificates SELECT * FROM sys.certificates -- this provides the list of databases (encryption_state = 3) is encrypted SELECT * …

2
Какое влияние окажет уменьшение размера столбца varchar на файл базы данных?
В нашей базе данных есть несколько таблиц, в которых есть VARCHAR(MAX)столбцы, в которых достаточно VARCHAR(500)(или что-то намного меньше, чем max). Естественно, я хочу очистить их и довести размеры до более разумных уровней. «Как» сделать это, я понимаю: мой вопрос заключается в том, что изменят эти столбцы для страниц и существующих …

1
Почему оператор агрегирования используется после сканирования уникального индекса
У меня есть таблица с уникальным индексом, отфильтрованным для ненулевых значений. В плане запроса есть использование различных. Есть причина для этого? USE tempdb CREATE TABLE T1( Id INT NOT NULL IDENTITY PRIMARY KEY ,F1 INT , F2 INT ) go CREATE UNIQUE NONCLUSTERED INDEX UK_T1 ON T1 (F1,F2) WHERE F1 …

3
Как получить загрузку процессора по базе данных для конкретного экземпляра?
Я обнаружил следующие запросы для определения использования ЦП базой данных, но они показывают разные результаты: WITH DB_CPU_Stats AS ( SELECT DatabaseID, DB_Name(DatabaseID) AS [DatabaseName], SUM(total_worker_time) AS [CPU_Time_Ms] FROM sys.dm_exec_query_stats AS qs CROSS APPLY ( SELECT CONVERT(int, value) AS [DatabaseID] FROM sys.dm_exec_plan_attributes(qs.plan_handle) WHERE attribute = N'dbid') AS F_DB GROUP BY DatabaseID …

1
Как я могу создать запрос для приостановки / сна / ожидания в течение определенного времени?
Я тестирую приложение мониторинга на экземпляре SQL Server 2000. Как я могу написать запрос T-SQL, который занимает определенное время? Например, большинство языков сценариев имеют что-то вроде SLEEPкоманды, которая позволяет приостановить выполнение сценария на определенное время. Я ищу что-то подобное, совместимое с SQL Server 2000. Это предназначено для проверки параметров порогового …


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