MS SQL Server - дело тонкое...


Tips for DBA: “SET QUERY_STORE = OFF” AND “QUERY STORE BACKGROUND FLUSH DB”

Если выполнение отключения QS для базы данных блокируется системным процессом: QUERY STORE BACKGROUND FLUSH DB

SET DEADLOCK_PRIORITY HIGH
ALTER DATABASE [DATABASENAME] SET QUERY_STORE = OFF WITH NO_WAIT
GO


Подключиться через DAC и сделать:

TRUNCATE table sys.plan_persist_runtime_stats;
TRUNCATE table sys.plan_persist_runtime_stats_interval;
TRUNCATE table sys.plan_persist_plan;
TRUNCATE table sys.plan_persist_query;
TRUNCATE table sys.plan_persist_query_text;
TRUNCATE table sys.plan_persist_context_settings;


Подробности можно найти тут: Manually Clearing the Query Store
добавлено: 22 апр 20 просмотры: 1673, комментарии: 0



Tips for DBA: The SQL Server service and the SQL Server Agent Service fail to start on a stand-alone

Если в журнале приложений есть ошибки для MSSQLService: “…TDSSNIClient initialization failed with error 0x80092004…” нужно В POWERSHELL создать самоподписной сертификат (заменив в скрипте имя SERVERNAME.DOMENNAME.ru на полное имя вашего сервера):

New-SelfSignedCertificate -Type SSLServerAuthentication -DnsName SERVERNAME.DOMENNAME.ru -KeyLength 2048 -KeySpec KeyExchange -KeyUsage KeyEncipherment -TextExtension @(“2.5.29.37={text}1.3.6.1.5.5.7.3.1”) -NotAfter (Get-Date).AddMonths(1200)
Далее нужно указать для протоколов созданный сертификат, как это описано в главе “Configuring SSL for SQL Server” статьи: https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/ms189067(v=sql.105)
добавлено: 10 фев 20 просмотры: 2991, комментарии: 0



План запроса с уровнем изоляции «Read Committed»

Craig Freedman, 2 мая 2007г. Оригинал статьи тут: https://blogs.msdn.microsoft.com/craigfr/2007/05/02/query-plans-and-read-committed-isolation-level/

В прошлый раз мы рассмотрели то, как одновременные изменения могут стать причиной просмотра на уровне изоляции read committed. Также было показано что эти условия могут привести к выборке одной и той же строки несколько раз или вообще к отсутствию строки в выборке. Теперь давайте рассмотрим как одновременные изменения могут отразиться на работе более сложных планов запроса.

Продолжить чтение.
добавлено: 04 фев 20 просмотры: 3368, комментарии: 0



Опыт размещения файлов больших баз данных

В этой статье отражён опыт построения и поддержания инфраструктуры для больших (больше 10Тб) баз данных. Статья не предлагает универсального решения всех возможных задач MS SQL Serverи не отражает всего разнообразия возможных типов нагрузки. Поэтому использовать представленные ниже выводы и рекомендации стоит с оглядкой на свою специфику. Всё, что тут описано, было апробировано на OLTP нагрузках с немалой долей больших аналитических запросов, агрегации, процессинга и массовых выгрузок/загрузок данных. Нагрузка была блочная, неоднородная во времени и по структуре. Характерными чертами нагрузки являлся высокий параллелизм, большое число блокировок, листаний, асинхронных операций, очередей, ожиданий процессора и окончания ввода-вывода. Сама нагрузка балансировалась на уровне логики работы приложения, ресурсы распределялись сообразно возможностям задач, запросы снабжались «хинтами», а распределения памяти для многих задач исчислялись десятками и сотнями Мегабайт. Статья предназначена для администраторов баз данных и хранилищ. Подразумевается, что она облегчит понимание особенностей размещения файлов данных и журналов SQL Server в сетях SAN.

Читать далее: https://blogs.msmvps.com/gladchenko/sizing/
добавлено: 06 фев 19 просмотры: 4770, комментарии: 0



DevOps or not DevOps

Драгоценные вы мои коллеги! Много в последние дни стали говорить о неких новых вершинах роста развития разработчика и админа. Всё чаще и громче звучит хор разного уровня менеджеров – блогеров (вот последний попавшийся мне на глаза пример: 5 challenges to scaling DevOps at enterprise level) о том, что сферу IT технологий должны наполнить «супер герои», и таким может стать каждый. С чей-то «лёгкой руки» скрестили два (а то и три, если считать управленцев) ортогональных направления IT-проекта, разработку и администрирование. Почему это сделали – понятно. Так проще загонять работы в неверно установленные рамки (тассочки вовремя закрывать, а то премию не дадут). А что бы «старпёры» (такие, как ваш покорный слуга) не «воняли», придумали слоган, что только таким путём можно вовремя реагировать на ставшее почему-то быстрым преобразование бизнеса в эпоху информационных технологий.
И вот перед нами предстаёт он – DevOps, великий и могучий. Давайте рассмотрим его под «лупой». Первое, что бросается в глаза, это то «море» экспертизы, которым пышет это «создание». Основная область – это конечно же разработка. Тут каждый должен знать все последние модные языки и технологии «впаривания» на них кода в продакшен. Причём, чем таких средств больше и чем они новее – тем круче! Вторая область, в которой разработчик всегда чувствовал себя увереннее любого недоразвитого админа – это поддержка и администрирование своего детища. Ведь проще это не хитрое дело делать самому, чем плодить тонны документации и внушать этим «тупым» и «упрямым» айтишникам, как заставить работать столь великолепный в исполнении и гениальный по задумке продукт (который так необъятен, что тестеры ещё долго будут ломать об него свои жалкие копья). Ну и что бы не стало никаких препятствий к заветным бонусам, нужно добавить ещё в этот «винегрет» обязанности продакт-менеджера, который вечно норовит всё перепутать и разрушить стройную модель доведения продукта до пользователя (или хотя бы до тестера). Итого, перед нами предстаёт величественная фигура полубога, который может всё и вся. Это кумир, идол и обитатель не земных высот! У него золотая голова, стальные мышцы и нестираемые метало-керамические колодки вместо подошв (автор не пытается тут напомнить вам сон Навуходоносора, совсем нет).
Теперь давайте кинем в него «камень». Что же случилось, почему эта величественная «скульптура» рассыпалась в прах!? Да всё просто, жизни не хватит, чтобы собрать даже в «золотой» голове всё ту экспертизу, которая будет покупаться и/или аутсортситься бизнесом. Раньше таких горе специалистов принято было называть просто – ламер. Но ламера не продать, поэтому то и нарядили его в «новые одежды». Чистой воды маркетинг. Дерево познаётся по плодам, и когда мы увидим и насладимся плодами девопсов, маркетологи придумают что-нибудь новое.
Второе, что бросается в глаза – это попытка совместить в одном лице две сущности, у которых очень разные цели, хотя задачи и могут иногда пересекаться. Цель разработчика – сдать к сроку работу и получить за это бонус. Цель админа, заставить эту работу работать и за это получить бонус. Цели ортогональны! Что получится в результате – работы будут всегда сданы в срок и работать будут всегда (под неусыпным присмотром девопса, который только один будет знать, как этого добиться). Кажется, где-то мы уже такое видели….
Кто же это придумал? Да уши же торчат прямо из самого названия – уж не от Devil ли сокращение первой части… От чего сокращение второй части, предлагаю обсудить в комментариях к этому посту ;)

В тему: The conflict between data protection and DevOps
добавлено: 19 апр 18 просмотры: 3334, комментарии: 5



SQL 2016 – It Just Runs Faster: Automatic Soft NUMA

По материалам статьи: SQL 2016 – It Just Runs Faster: Automatic Soft NUMA
30 марта 2016

Автор: Nitin Verma – Principal SQL Server Developer, Bob Dorr – Principal SQL Server Escalation Engineer

Мощности серверного оборудования растут из года в год, что обусловлено многолетним развитием технологий изготовления процессоров. Анализируя результаты наших исследований того, как работает SQL Server на современном оборудовании, и как наши клиенты достигают оптимального для себя масштабирования вычислительных ресурсов, мы выдвинули на передний план дальнейшего развития сервера баз данных необходимость улучшения возможностей секционирования обслуживания нагрузки. В настоящее время, именно основанный на секционировании дизайн является самым распространённым способом локализации обслуживания нагрузки и улучшения производительности и масштабируемости. Примером того, как SQL Server использует секционирование нагрузки является объект CMemThread.

Читать статью полностью
добавлено: 17 май 17 просмотры: 3197, комментарии: 0



SQL Server 2012 Database Engine Task Scheduling

Автор: Боб Дорр - главный эскалационный инженер поддержки SQL Server
По материалам статьи: How It Works: SQL Server 2012 Database Engine Task Scheduling

В течении последних лет в разных источниках были описаны алгоритмы работы планировщика SQL Server. В частности, в статье «The Guru’s Guide to SQL Server Architecture and Internals» есть глава, написанная разработчиком планировщика (Sameer) и Кеном Хендерсеном. Автор этой статьи и ранее описывал некоторые технические детали алгоритмов планирования задач SQLServer.

Эта статья посвящена некоторым изменениям, которые появились в SQL Server 2012. Статья не претендует на охват всех нюансов (коих слишком много), вместо этого будет частично проиллюстрирована работа алгоритма в его современной реализации, что позволит вам лучше понимать поведение планировщика SQLServer. Автор допускает по тексту несколько вольную трактовку в описании алгоритмов, преследуя цель избавить статью от лишней официальности.


Читать статью полностью
добавлено: 19 авг 16 просмотры: 2905, комментарии: 0



Введение в секционирование таблиц

По материалам статьи Крейга Фридмана: Introduction to Partitioned Tables

27 ноября 2006г.

В этой статье я собираюсь продемонстрировать особенности планов исполнения запросов при обращении к секционированным таблицам. Обратите внимание, что существует большая разница между секционированными таблицами (которые стали доступны только с SQL Server 2005) и секционированными представлениями (которые были доступных ещё в SQL Server 2000, и по-прежнему доступны в SQL Server 2005 и последующих версиях). Особенности планов запросов к секционированным представлениям я продемонстрирую в другой статье.

Читать далее.
добавлено: 19 янв 16 просмотры: 2945, комментарии: 0



Running SQL Server on Machines with More Than 8 CPUs per NUMA Node May Need Trace Flag 8048

По материалам статьи: Running SQL Server on Machines with More Than 8 CPUs per NUMA Node May Need Trace Flag 8048

Данная статья относится к следующим версиям SQL Sever: 2008, 2008 R2, 2012 и 2014. Первый вариант статьи был опубликован в 2011г.



Примечание: в данной статье под количеством процессоров подразумеваются не сокеты, а представленные в системе логические процессоры. Рекомендации статьи применимы в тех случаях, когда для сервера баз данных доступно более восьми логических процессоров из расчёта на один физический процессор.

читать дальше...
добавлено: 24 июн 15 просмотры: 3259, комментарии: 0



SQL Server 2014 Real Time Query Monitoring

Автор: Daniel Farina

http://www.mssqltips.com/sqlservertip/3328/sql-server-2014-real-time-query-monitoring/

Проблема

Если вдруг один из запросов к SQL Server выполняется слишком долго, вы может получить его план исполнения, что даст вам понимание того, что этот запрос делает, но из этого плана вы не сможете точно определить, что запрос делает именно в это время, т.е. на каком операторе плана он «застрял»?
Продолжая читать эту статью, вы узнаете, как научится следить за прогрессом исполнения запроса в режиме реального времени.

читать дальше...
добавлено: 27 янв 15 просмотры: 5356, комментарии: 0