Skip to content

Commit

Permalink
Дополнение ссылок на материалы
Browse files Browse the repository at this point in the history
- О внутреннем устройстве движка хранения данных
- Доп. информация об опции AllowPageLocks в раздел по индексам
- Доп. ссылки в инструкцию по служебной базе данных сопровождения и мониторинга
  • Loading branch information
YPermitin committed May 1, 2023
1 parent a861de8 commit 9981ab1
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 2 deletions.
6 changes: 5 additions & 1 deletion SQL-Server-Indexes/Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,11 @@

* [Официальная документация](https://learn.microsoft.com/ru-ru/sql/relational-databases/indexes/indexes?view=sql-server-ver16)
* Реорганизация индексов и параметр "Allow Page Locks":
* [Risk of disabling page locking](https://dba.stackexchange.com/questions/72369/risk-of-disabling-page-locking)
* [Difference Between Row Level and Page Level Locking and Consequences](https://dba.stackexchange.com/questions/6512/difference-between-row-level-and-page-level-locking-and-consequences)
* [How to force the use of row locks?](https://dba.stackexchange.com/questions/29293/how-to-force-the-use-of-row-locks)
* [Is it possible to force row level locking in SQL Server?](https://stackoverflow.com/questions/3114826/is-it-possible-to-force-row-level-locking-in-sql-server)
* [Resolve SQL Server Database Index Reorganization Page Level Locking Problem](https://www.mssqltips.com/sqlservertip/4247/resolve-sql-server-database-index-reorganization-page-level-locking-problem/)
* [What is the impact of temporarily setting ALLOW_PAGE_LOCKS ON](https://dba.stackexchange.com/questions/135934/what-is-the-impact-of-temporarily-setting-allow-page-locks-on)
* [ALLOW_PAGE_LOCKS : to use or not to use](https://www.sqlservercentral.com/forums/topic/allow_page_locks-to-use-or-not-to-use)
* [What's BEST practice ? To have Page Level Locking Enabled or Disabled ?](https://social.msdn.microsoft.com/Forums/sqlserver/en-US/0031482c-5e48-4abc-87f9-d3991517cf5a/whats-best-practice-to-have-page-level-locking-enabled-or-disabled-?forum=sqldatabaseengine)
* [What's BEST practice ? To have Page Level Locking Enabled or Disabled ?](https://social.msdn.microsoft.com/Forums/sqlserver/en-US/0031482c-5e48-4abc-87f9-d3991517cf5a/whats-best-practice-to-have-page-level-locking-enabled-or-disabled-?forum=sqldatabaseengine)
8 changes: 8 additions & 0 deletions SQL-Server-Internals/Storage-Engine/Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Storage Engine

Материалы о внутреннем устройстве движка храннеия данных SQL Server.

## Полезные ссылки

* [Inside the Storage Engine: Anatomy of a page](http://www.sqlskills.com/blogs/paul/inside-the-storage-engine-anatomy-of-a-page/)
* [Inside the Storage Engine: Anatomy of a record](http://www.sqlskills.com/blogs/paul/inside-the-storage-engine-anatomy-of-a-record/)
19 changes: 18 additions & 1 deletion SQL-Server-Maintenance/Service-Database/Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -612,7 +612,24 @@ ALTER INDEX [IndexName] ON [dbo].[TableName] SET (ALLOW_PAGE_LOCKS = OFF);

Для проверки работы механизма отсложенных команд обслуживания можно смотреть ту же таблицу логов, что и для остальных операций обслуживания - **MaintenanceActionsLog**. В ней для подобных операций в колонке **Operation** будет содержаться значение вида **MAINTENANCE ACTION TO RUN (REORGANIZE INDEX)**, а в колонке **SQLCommand** можно увидеть исходную команду, которая была выполнена.

Вообще отключение возможности блокировок на уровне страниц является точечным решением и не применяется повсеместно, т.к. ведет к увеличению потребления памяти СУБД и некоторым другим эффектам.
Вообще отключение возможности блокировок на уровне страниц является точечным решением и не применяется повсеместно, т.к. ведет к увеличению потребления памяти СУБД и некоторым другим эффектам. Отключение блокировок на уровне страниц решение часто спорное, если используется для всей базы данных. Вот дополнительная информация по этой теме:

* [Risk of disabling page locking](https://dba.stackexchange.com/questions/72369/risk-of-disabling-page-locking)
* [Difference Between Row Level and Page Level Locking and Consequences](https://dba.stackexchange.com/questions/6512/difference-between-row-level-and-page-level-locking-and-consequences)
* [How to force the use of row locks?](https://dba.stackexchange.com/questions/29293/how-to-force-the-use-of-row-locks)
* [Is it possible to force row level locking in SQL Server?](https://stackoverflow.com/questions/3114826/is-it-possible-to-force-row-level-locking-in-sql-server)
* [ROW_LOCKS & PAGE_LOCKS](https://social.msdn.microsoft.com/Forums/sqlserver/en-US/1b74e212-6c70-4db6-8d1a-23188fa4ef27/rowlocks-amp-pagelocks?forum=transactsql)
* [Resolve SQL Server Database Index Reorganization Page Level Locking Problem](https://www.mssqltips.com/sqlservertip/4247/resolve-sql-server-database-index-reorganization-page-level-locking-problem/)
* [ALLOW_PAGE_LOCKS : to use or not to use](https://www.sqlservercentral.com/forums/topic/allow_page_locks-to-use-or-not-to-use)
* [What is the impact of temporarily setting ALLOW_PAGE_LOCKS ON](https://dba.stackexchange.com/questions/135934/what-is-the-impact-of-temporarily-setting-allow-page-locks-on)

Принимая решение об отключении блокировок на уровне страниц для объекта нужно это обосноваь конкретной необходимостью и не принимать в качестве универсального решения. По ссылкам Выше можно найти более подробную информацию, а я лишь процитирую [Remus Rusanu]() и дам [ссылку на ответ]:

```
I would never turn this OFF on my database. The solution is always to properly design the schema and the queries so that scans (which are the culprits for escalation) don't occur to start with.
```

Думайте, что делаете. А когда делаете - думайте еще!

#### Исправление системного кэша объектов для реплик AlwaysOn

Expand Down

0 comments on commit 9981ab1

Please sign in to comment.