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

Питання та відповіді для професіоналів баз даних, які бажають покращити свої навички роботи з базами даних та дізнатися від інших у спільноті

2
Чи може нульовий стовпець бути частиною первинного ключа?
Я розробляю базу даних SQL Server 2012, і у мене виникає питання про відношення "один до нуля" або "один". У мене дві таблиці, Codesі HelperCodes. Код може мати нуль або один допоміжний код. Це сценарій sql для створення цих двох таблиць та їх зв’язків: CREATE TABLE [dbo].[Code] ( [Id] NVARCHAR(20) …

4
Максимальна пам'ять SQL Server, файл сторінки, паралелізм максимуму
Три питання сподіваємось, що ви зможете відповісти господарям DBA у Всесвіті: Я знаю, що найкраща практика встановити максимальну пам'ять SQL Server. Отже, якщо на сервері з 44 ГБ оперативної пам’яті встановлено SQL Server, ми маємо встановити максимальну пам’ять для SQL Server приблизно 37 Гб. Але що нам встановити, якщо служба …

1
Запити, що користуються спільним користувачем: Dynamic SQL vs. SQLCMD
Мені доведеться перефактурувати і задокументувати ряд foo.sqlзапитів, якими поділятиметься команда технічної підтримки БД (для конфігурацій клієнтів і подібних речей). Існують типи квитків, які регулярно надходять, коли кожен клієнт має власні сервери та бази даних, але в іншому випадку схеми є однаковими для всіх. Збережені процедури не є варіантом на даний …

2
Чому функції, що мають значення для скалярного значення, потребують виконання дозволу, а не вибору?
Мене цікавить, чому для функції скалярної цінності я повинен дозволити користувачеві виконувати, а не просто вибирати? тим часом функції, що оцінюються в таблиці, спрацьовують добре лише з дозволом або db_datareaderчленством. щоб бути більш зрозумілим ось мій приклад: мені потрібен користувач, який читав лише дозвіл на базу даних. тому я створив …

3
Впровадження системи версій з MySQL
Я знаю, що це запитували тут і тут , але я маю ту саму ідею з іншою можливою реалізацією, і мені потрібна допомога. Спочатку я мав свою blogstoriesтаблицю з такою структурою: | Column | Type | Description | |-----------|-------------|------------------------------------------------| | uid | varchar(15) | 15 characters unique generated id | …

1
Автоматичне старіння (видалення) старих записів у Postgres
Чи має Postgres якісь функції для підтримки старіших старих записів? Я хочу використовувати Postgres для ведення журналів, як свого роду черги, де записи (події журналу), старші двох тижнів, автоматично видаляються.

2
Одночасні дзвінки на одну і ту ж функцію: як відбуваються тупикові місця?
Моя функція new_customerвикликається веб-додатком кілька разів на секунду (але лише один раз за сеанс). Найперше, що він робить - це заблокувати customerтаблицю (зробити "вставку, якщо її немає" - простий варіант а upsert). Я розумію документи , що інші дзвінки new_customerповинні просто стояти в черзі, поки всі попередні дзвінки не закінчаться: …

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

4
Чому ключ повинен бути явним?
Я дуже новачок у темі баз даних, тому це може здатися необізнаним, але мені цікаво, чому ключ повинен бути явним у таблиці. Це в першу чергу для того, щоб сказати користувачеві, що дане значення стовпця (сподіваємось) гарантується унікальним у кожному рядку? Унікальність все ж має бути там, навіть якщо вона …

4
Як я можу перетворити ключ у звіті про тупик SQL Server у значення?
У мене є звіт про глухий кут, який повідомляє мені, що стався конфлікт, пов’язаний з waitresource = "КЛЮЧ: 9: 72057632651542528 (543066506c7c)", і я можу це бачити: <keylock hobtid="72057632651542528" dbid="9" objectname="MyDatabase.MySchema.MyTable" indexname="MyPrimaryKeyIndex" id="locka8c6f4100" mode="X" associatedObjectId="72057632651542528"> в межах <resource-list>. Я хочу мати можливість знайти фактичне значення для ключа (наприклад, 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 ((B.PROPERTYID=N'PR1526157') OR (B.PRODID=N'PR1526157'))) …

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

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

2
Уникайте унікального порушення в атомній транзакції
Чи можливо створити атомну транзакцію в PostgreSQL? Поміркуйте, у мене є категорія таблиці з цими рядками: id|name --|--------- 1 |'tablets' 2 |'phones' І назва стовпця має унікальне обмеження. Якщо я спробую: BEGIN; update "category" set name = 'phones' where id = 1; update "category" set name = 'tablets' where id …

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.