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

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

2
Як можна видалити SQL, використовуючи підзапит
Наступний код додав один з наших розробників для видалення дублікатів записів із таблиці: DELETE SubQuery FROM ( SELECT ID ,FK1 ,FK2 ,CreatedDateTime ,ROW_NUMBER() OVER(PARTITION BY FK1, FK2 ORDER BY CreatedDateTime) AS RowNumber FROM Table ) AS SubQuery WHERE RowNumber > 1 Переглядаючи код, я припускав, що він не працюватиме, проте …

1
План виконання з декількома відсутніми індексами
Якщо ви запустите запит із "Включити фактичний план виконання", план також запропонує індекси, яких немає. Деталі індексу знаходяться всередині MissingIndexesтегу в XML. Чи існує ситуація, коли план включає кілька пропозицій щодо індексів? Я пробував різні запити sql, але не міг придумати жоден запит, який генерує два чи більше відсутніх індексів.

2
Чи можна системні таблиці SQL Server дефрагментувати?
У нас є кілька баз даних, в яких створюється і випадає велика кількість таблиць. З того, що ми можемо сказати, SQL Server не проводить жодного внутрішнього обслуговування системних базових таблиць , це означає, що вони можуть з часом сильно роздроблені та роздуватися. Це надає зайвий тиск на буферний пул, а …

2
Новіша версія SQL Server менш стабільна?
Наш архітектор бази даних повідомив клієнту нашого, що SQL Server 2014 - це поганий вибір у порівнянні з 2012 роком, оскільки йому не вистачає переваг щодо продуктивності та стабільності у 2012 році. Все, що я читав, суперечить цьому. Аарон Бертран говорить з точністю до навпаки, і всі доповіді, які я …

1
Метрики, які підтверджують або спростовують потребу в додаткових доменних запитах?
Наразі у нас є два учасники DBA, я та один хлопець, і ми обидва відчуваємо потребу в додатковому ресурсі (або двох). Я розмовляв із моїм прямим керівником на цю тему кілька разів, але у мене виникли труднощі з продажем поняття. Зовсім недавно наш менеджер поділився з нами тим, що дійсно …

3
Чому мій запит EXISTS виконує сканування індексу замість індексу?
Я працюю над оптимізацією деяких запитів. Для запиту нижче: SET STATISTICS IO ON; DECLARE @OrderStartDate DATETIME2 = '27 feb 2016'; DECLARE @OrderEndDate DATETIME2 = '28 feb 2016'; SELECT o.strBxOrderNo , o.sintOrderStatusID , o.sintOrderChannelID , o.sintOrderTypeID , o.sdtmOrdCreated , o.sintMarketID , o.strOrderKey , o.strOfferCode , o.strCurrencyCode , o.decBCShipFullPrice , o.decBCShipFinal , …

3
Резервні копії журналу транзакцій послідовні чи паралельні?
Ми, звичайно, використовуємо SQL Server 2012 Standard Edition. Мені трапляється також використовувати сценарії Ola Hallengren, щоб забезпечити просту, більш гнучку рамку для створення резервних копій та обслуговування. Це питання не стільки стосується сценаріїв Оли, скільки про кращу практику. Я усвідомлюю, що остаточна відповідь - це "залежить від вимог вашої компанії". …

3
База даних, що зберігається, у режимі попереднього перегляду
Досить поширеною схемою в застосуванні бази даних, з якою я працюю, є необхідність створення збереженої процедури для звіту або утиліти, яка має "режим попереднього перегляду". Коли така процедура робить оновлення, цей параметр вказує на те, що результати дії повинні бути повернуті, але процедура фактично не повинна виконувати оновлення бази даних. …
15 sql-server  t-sql 

1
SQL Server 2014 COUNT (DISTINCT x) ігнорує вектор щільності статистики для стовпця x
Для того, COUNT(DISTINCT)що має ~ 1 мільярд чітких значень, я отримую план запитів із хеш-сукупністю, за оцінками, лише ~ 3 мільйони рядків. Чому це відбувається? SQL Server 2012 дає хорошу оцінку, тож це помилка в SQL Server 2014, про яку я повинен повідомити про підключення? Запит та погана оцінка -- …

1
У замовчуванні пулу ресурсів недостатньо системної пам'яті для запуску цього запиту
Я використовую SQL Server 2014 - 12.0.2269.0 (X64) на Windows Server 2012, і у мене виникають деякі проблеми з пам'яттю. Коли я запускаю збережену процедуру, яка робить досить «важкий» обчислення, я отримую помилку приблизно через 10 хвилин: У пулі ресурсів "за замовчуванням" недостатньо системної пам'яті для запуску цього запиту. Мій …

2
Регресивна глибина поглинання PostgreSQL
Мені потрібно обчислити глибину нащадка від його предка. Коли запис є object_id = parent_id = ancestor_id, він вважається кореневим вузлом (предком). Я намагався WITH RECURSIVEзапустити запит із PostgreSQL 9.4 . Я не контролюю дані чи стовпці. Схема даних та таблиць надходить із зовнішнього джерела. Стіл постійно зростає . Зараз приблизно …

5
Резервне копіювання та відновлення 10-20 баз даних SQL Server до ~ синхронного стану?
Мені потрібно створити резервну копію 10-20 баз даних SQL Server 2008 R2 розмірами від 10-50 ГБ, при цьому вони є в Інтернеті та використовуються одночасно одним корпоративним додатком. Мені також потрібно відновити їх до стану, який значною мірою синхронізується у всіх базах даних (я можу дозволити до декількох секунд десинхронізації …

2
Дозволи дозволу DDL_admin проти db_owner
Я переймаю проект, який передбачає видалення та обмеження дозволів усіх користувачів бази даних по всій фермі серверів. (веселі часи) Один з дозволів, які наразі обмежені, - це права доступу db_owner. Цей дозвіл переглядається в кожному конкретному випадку, але загальною зміною є заміна дозволів db_owner на таке: db_datareader db_datawriter db_ddladmin db_executor …

4
як запитувати SSISDB, щоб дізнатися про помилки в пакунках?
Я бачив це питання SSIS 2012 - Як запитувати поточні пакети в T-SQL? Це дає мені такий сценарій: SELECT E.execution_id , E.folder_name , E.project_name , E.package_name , E.reference_id , E.reference_type , E.environment_folder_name , E.environment_name , E.project_lsn , E.executed_as_sid , E.executed_as_name , E.use32bitruntime , E.operation_type , E.created_time , E.object_type , E.object_id …

2
Чому оцінки рядків SQL Server змінюються, коли я додаю підказку про приєднання?
У мене є запит, який поєднує декілька таблиць і виконує досить погано - оцінки рядків відключаються (в 1000 разів) і вибирається об'єднання вкладених циклів, в результаті чого відбувається багаторазове сканування таблиці. Форма запиту досить проста, виглядає приблизно так: SELECT t1.id FROM t1 INNER JOIN t2 ON t1.id = t2.t1_id LEFT …

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