?? ????????? ??? ? ?????? ? ???? ???c?? ??????, ??? ?????????? ??????????? ??????? ???? ??????. ????? ??????? ??????? ?? ??????????????? ??? ??????, ??????? ????????? ????? ??????? ? ???? ?????? ? ???????? ???????? ???????????? ??? ?????????????? ????? ??? ??????. ???? ??????? ??????? ?? ?????, ??????? ?? ???????? ????????????????? ???????????????? ??? ??????, ??, ?? ??? ??? ???? ???????, ??????? ????? ?????? ??? ????? ?? ??? ???????????????. ? ??????????? ???????? ?? ??????????? ???????????????? ??? ???????. ?????? ???? ????? ??????? ? ?????????????? ???????? ?? ????????? ????????? ???????????? ??? ?????? ??? .
??? ? ? ?????? ? ???????????? ????? ? ???????? ? ???? ?????????????? ??????????, ?????????? ?? ????? ?????? ???????????? ??????? ???????????? ??? ?????? ?? ??????????, ?? ???? ????????? ???????? ????????, ??????? ????? ?????? ??????? ????????. ??? ?????? ?????? ??????? ???? ????????, ????????????? ??? ????????????? ??????? ????????:
? ??????????????? (??? ????? ?????????????) ???? ?????? ????? ?????????? ???????? ? ????? ??? ?????????? ?? ???? ????????, ??? ?? ???????? ????? ???????? ? ?????? ?????? ?????????? ??? ???? ???????? ? ?????? ??????.
? ???? ?????? ? ???????, ?????? ??? ???????? ?????, ? ?????? ????????? ??????? ???? ?? ?????????. ??? ?????????? ????? ???????? ?? SQL Server? 2005, ?? ? ????? ?????? ???????? ???????, ? ???????? ????? ??????????? ? SQL Server 2000 ? ??????????? SQL Server 2008.
?????? ???????, ??????? ? ?????? ?????????? ????????? ??? ???????? ?????????? ????? ?????? ? ??? ?????????, ????????? ? ??????????? ??????? ?????? ? ??????? (??????????). ?????? ??????, ??????? ?????????, ???:
????? ????? ?????? ? ??????? (???????, ? ??????, ?????? ?????? ???? ?? ?????? ?????) ????????? ? ????? ???? ? ????? ?????? ???????????, ??????? ??????? ??? ????????? ?????, ????????? ??????????? ??? ???????????? ??????. ? ?????? ?????? ?????????? ???????????? ?????? ????? ?????? ????????? ????? ? ?????? ?????? ???????? (???????? ???, ??? ????????????? ????? ??????? ????? ??????). ? ?????? ???????? ??? ????? ??????? ??????? ????? ????????? ???? ?? ??????????????????, ???????? ???? ?????????????? ?????????? ??????????? ???? ?? ????? ????????? ?????????? ??????? ????? ?????? ???, ??? ? ??? ????????? ???????????.
????? ??????? ????????? ????????? ?? ???????, ????????? ???????????? ??????? ??????? (Virtual Log Files ? VLF), ? ??? ???? ???????????? ? ????? ??????? (? ????????? ????? ???????????? ?????, ????????? ??????? ?????????? ?????? ??????? ?? ????? ???????? ?????? ? ? ???? ?????? ??????? ??????? ?????? ????), ??? ?????? ????? VLF. ????? ????, ??? ????? VLF ? ????? ??????? ?????????, ??????, 200, ????? ?????????? ?????????????????? ????????? ? ???????? ????????, ????? ??? ?????? ??????? (??????, ??? ?????????????? ??????????/??????), ????????? ??????????? ??????? ? ???? ????????? ? SQL Server 2000 (?????????? ????????? ?????????? ? SQL Server 2005 ? ??????? ?????????? ?? ?????????????? ?????? ?????).
??? ???????? ???????? ?????? ?????? ? ???????, ????? ????? ????????? ?? ? ?????????? ?????????????? ????????. ??? ?????? ?????? ??? ?????? ??????????????? ??????? ?????? ??????????? ?? ???????? ??????????? ?????????? ? ???? ?????????????? ?????? ? ????????? ???????????. ????????, ???? ?????????????? ?????? ?????? ????? 50 ??, ?? ????????, ??? ? ??????? ????????? ????? ??????? ????? ????????? ??? 50 ?? ??????, ????? ????? ????? ??????? ???? ?????? ???????? ? 100 ?? ?????? ????, ????? ?????????? ??? ?? ????? ??????? ? ??????? ?????????? ???????.
? ??????? ???????? ????, ???, ??????? ????????? ??????? ? ?????????? ????????? ????? ???????, ??? ?????? ?????????? (???????????? ?????????? ?? ????? ???? ??????? ?? ??????? ?? ?????? ??????????) ? ??????? ?????????? ??????????? ??????? (????????? ?????? ??? ??? ????????? ?????????? ????? ???????). ?????????????? ???????? ????????? ? «8 Steps to Better Transaction Log Throughput (?8 ????? ? ????????? ?????????? ??????????? ??????? ???????????)«, ?????????? ?????? ? ????? ?? SQLskills.com, ?????????? ???? ?????, ???????? ????? (Kimberly Tripp).
????? ????, ??? ??????? ?????? ???????????, ?? ???? ??????? ????????? ? ????????? ???????, ? ?? ??????? ??????? ??????????? ??????? ? ?????????? ????? ?????. ?????????????? ?????????? ??????? ???????? ? ???????? ???????????????? ?? ?????? ??????, ????? ????? ????? ????? ?? ???? ????????????? ? ?????? ??????-???? ?????????? ???????. ???????, ?? ??????? ?????????? ??????? ?? ??????? ??????? ????????? ??????????????? ??????????, ??????? ? ???, ??? ?????????????? ?????????? ?????????? ??????? ????? ? ???????????? ?????? ? ??? ?????????????? ?????????? ????? ???????? ????? ???????, ??????? ?????? ?????????? ? ??????????? ???????.
?????? ??????????????? ?????????? ??????? ?????????? ?? ???????????? ????????, ? ?? ?? ???????, ????? ???????????? ????? ? ?????, ??????????? ??? ?????????? ??????????????? ??????????, ???? ??? ??????????. ????????, ? ?????? 100-???????????? ????? ?????? ?????????? ????????????? ?????? ??????????????? ?????????? ??? 5 ??, ? ??, ??????, 10%. ??? ??????, ??? ?? ?????? ????? ????????????? ?? 5 ?? ??? ??????????? ?? ???????? ??????? ?????, ? ?? ?? ?????, ??????????????? ????? ??????? ?????????? ????? (10 ??, 11 ??, 12 ?? ? ??? ?????).
????? ?????? ?????????? ????????????? (???? ???????, ???? ????? ?????????????? ??????????), ?? ?????? ???????????????? ??????. ????? ?????? ????? ?? ?? ????????? ?? ????????? ? SQL Server 2000, ?? ??????? ? SQL Server 2005 ? ??? ????? ???????? ?????????? ????????????? ?????, ??????? ?????????? ????????????? ?????? ?????? ?, ??? ?????????, ?????? ?????????? ? ?????????????? ?????????? ??????????? ???????????. ? ????????????????? ???????????????? ??????????????, ??? ??????? ???????? ?? ???? ???????? SQL Server. ?????????????? ???????? ????? ?????, ????? «instant file initialization» (??????????? ????????????? ??????) ? ????????? ??????????? ???????????? ??? SQL Server 2005 ??? SQL Server 2008.
???????, ??????? ????????????, ????? ?????? ??????? ?? ???? ???????? ??????. ?????? ????? ???????????? ??? ?????????? ??????? ????? ?????? ??? ???????, ?? ??? ????? ??????, ???????????????? ???????, ??????? ???????? ??????? ?????????? ???????????? ????????? ? ?????? ?????? (??????????? ??. ????) ? ????? ? ?????? ??????????????????. ? ??????? ?????? ? ?????? ? ??????????? ???????????? SQL Server 2005, ??????? ?????????????? ?? ????. ???????, ?????? ????????? ?????? ?????? ? ??????? ??????? ????? ???? ????????? ??? ?????? ???????????????.
?????????????? ?????? ???????? ??????, ????????? ??? ??????????? ?????? 30 ????? ? ??????? ?????? ? ???????? ??????? ???? ??????, ??? ??????? ????????? ???????? ??????????????? ??????. ???? ??????? ?? ?????? ??????????? ? ???, ??? ?? ??????? ???? ???? ?????? ? ????? ??? 25% ?????????? ?????. ?????????????? ?????? ?????????? ????? ???????? ? ???????? ?????????? ?????????????????? ????????????, ??? ??? ??? ???????????? ??? ????? ???????????????. ??? ?????? ??????? ????????? ? ???????:
ALTER DATABASE MyDatabase SET AUTO_SHRINK OFF;
???? ??????????? ???????????, ?????????? ?????? ???? ?????? ??????? ?? ?????? ???????, ????? ????? ?? ????. ???? ???????????, ??? ???? ?????? ????????? ?????? ????? ????, ??? ???? ???????????? ??????? ??, ?? ??? ??????? ???, ??? ???? ?????? ?????? ???????????? ????? ??? ??????.
????? ????? ????????? ???? ?????? ??????? ?? ??????? ??????????? ????????? ? ???????? ?????? ??????. ?????????????? ???????? ? ??????????? ????????????? ??????, ? ????? ???-????? ??????????? ?? ????? ?????????? ? SQL Server 2005 ????? ????? ? ???? ?????? ????? MSDN? ?? blogs.msdn.com/sqlserverstorageengine/archive/tags/Shrink/default.aspx.
?????? ???????????? ?? ?????? ???????? ??????? ? ?????? ????? ???????, ????? ???????? ???????????? ?????? ?????? ??????, ? ??????????, ???????? ?????? ?????? ? ????????. ?????? ????? ?????? ????? ????????? ??? ??????? ???? ????????????:
?????????? ???????????? ? ??? ??????? ? ???????? ??????? ?????? ???????????. ??? ?????????? ???. 1, ?????? ???????? ? ???? ?????? ????? ?????? 8 ?? ? 96-??????? ?????????; ??? ?????????, ???????? ????? ??????? ???????? 8096 ?????? ?????? ???????? ??? ?????? (?????????? ?????????? ????????? ?????? ? ???????? ??? ?????? ? ???????? ????? ????? ????? ? ???? ????? ?? ?????? sqlskills.com/blogs/paul, ? ????????? Inside The Storage Engine (??????? ????????? ?????????)). ?????? ???????????? ????? ??????????, ???? ?????? ??????? ??? ?????? ? ??????? ????????? ?? ???????? ???????? ????????, ????????? ????? ?? ???????? ????? ????????? ???? ???? ??????. ????????? ??? ????? ?????? ??? ??????????, ????????? ??? ??????????? ?????????? ????????? ????? ??????? ??? ???????, ????????, ????? ????????? ????? ??????? ?? ???-??, ??? ?? ???????? ????????? ????? ???????, ??? ??? ?????? GUID.
???. 1. ????????? ???????? ???? ??????
???? ?????????? ???????????? ?????????? ??????????? ??????, ?????? ??? ???????, ?????????? ? ????????, ??? ????? ???????? ?? ???????? ?????? ?????. ???????? ???????????? ????????????? ?????????? ????? ????? ?????????????? ????????????, ??????????? ????????? ? ??????????? ????????????. ? ??????????? ?? ????? ???????/??????? ? ????????????? ?????????? ??? ?????? ????? ????? ????????? ??????????? ??? ?????????? ????????????? ????? ??? ?????????, ??? ????? ???????? ? ??????????? ????? ??????????????? ????? ? ???? ??????.
??????????, ??? ???????, ??????? ?? 100 ????????? ?????, ??? ??????? ?????? ????? ?????? 400 ??????. ?? ???????? ?????? ????????? ?????? ?????????? ???????? ? ????????? ? ??????? 2800 ?????? ?????????? ???????????? ?? ????????. ????? ????????????, ????????? ????????, ?????????? 59 ??, ??? ????????? ????? ?????????? ???????: 8096-2800 / 400 = 13 ??????? ?? 8-??????????? ????????, ????? ????? 100 ????????? ?? 13, ????? ???????? ????? ???????. ???? ?? ???????????? ?? ?????????, ?? ?? ????? ???????? ????? ???? ?? ???????? 20 ???????, ??? ????????? ????? ????????? ???????????? ?? 38 ??. ???????? ????????!
?????????????? ????? ?? ????????? ??????/??????? ?????, ????? ???????, ???????? ? ???????? ???? ?? ?????? ?????? ?? ??????? ????? ???????. ??? ?? ?????? ???????? ? ???????? ??????? ????? ?? ?????, ?? ? ??????, ??? ??????? ???? ???????? ?????? ???????? ?????/??????, ????? ???????? ??? ?? ????? ??????. ? ??? ??? ?????????????? ???????? ???????? ?????? ????? ? ???? ??????, ??????? ??? ????? ?????? ???????.
?????????? ???????????? ????????? ?????????? ?????????, ????????? ?????????? ????????. ??? ??????????, ????? ?????? ?????????? ???????? ?? ???????????? ???????? ??????? (???????? ??????????? ????? ???????), ?? ?? ???????? ???????????? ?????, ????? ?????????? ??????????? ??????. ???????? ??????????? ???????, ? ???????? 50% ??????? ???????????? ?? ??????????????? ????????. ??? ????? ???????? ?????? ?? ???????? ????????? ??????? ?? ?????? ?, ?????????????, ????????? ?????????????????. ????????? ???????????? ????????? ?? ?????? ??????????. ???????????? ?????? ???????? ??????/???????? ?????? ?? ??????????? SQL Server ????????? ??????????? ????????? ??? ?? ???? ???????/???????, ???? ? ???????????? ???????????? WHERE ??????? (????? ??? SELECT * FROM MyTable WHERE Column1 > 100 AND Column1 < 4000).
?? ???. 2 ???????? ?????????????? ???????? ??????? ?? 100-?????????? ????????????? ?????????? ? ???????? ?????, ? ?????????? ??????? ??????? ????????? ? ?????????? ????????. ?? ???. 3 ???????? ????????????, ??????? ????? ??????????? ????? ????????? ???????/??????????/????????.
???. 2. ?????????????? ???????? ??????? ??? ????????????, ???????? ????? ?? 100%
???. 3 ???????? ???????, ???????????? ?????????? ???????????? ? ???????????? ??????????? ????????? ????? ????????? ???????, ?????????? ? ????????
???????????? ????? ????? ?????????????, ??????? ????? ???????/???????, ??, ??? ? ???????? ????, ??? ????? ???? ????? ??????? ??? ???????????. ???? ?????????????? ?????????, ?????????? ??????? ?????????? ???????????? ????? ?? ????????????? ? ? ?????????, ????? ?????????????? ??? ????????????? ???????.
?????????????? ??????? ????????????? ???????? ????? ????? ??????? (????????? ?????? ? ????????? ???????????, ????????? ??? ????????, ? ??????????? ??????? ?? ?????? ? ?????????????????). ????????? SQL Server ??????? ????? ????? ??????? ????? ????????? ??????, ??? ????????? ????????? ????? ? ?????? ??????, ?????????????? ?????? ??????? ???????. ? SQL Server 2000, ?????????????? ??????? ?????? ??????????? ? ?????????? ??????. ?????? ? SQL Server 2005 Enterprise Edition ?????????????? ??????? ????? ????????? ? ????????????? ?????? ? ?????????? ?????????????. ?????????????, ? ?????? ???????, ?????????? ????????? ???????? ??? ?????? ? ?????????????? ???????; ??? ??????? ???? 8 ?? ??????????????? ???????????? ??? ?????????? ? ? ?????? ???????? ? ????????????? ??????. ??????, ? SQL Server 2000 ? ?????????? ??????? ??? ????????????? ??? ?????????????, ?????????? ???????????? ???????????? ??????????? ???????.
? SQL Server 2005 ??????? ???????? ???????? ?? ??????? ALTER INDEX ? REBUILD ??? ?????????????? ???????? ? ALTER INDEX ? REORGANIZE ??? ?? ?????????????. ???? ????????? ???????? ??????? SQL Server 2000 DBCC DBREINDEX ? DBCC INDEXDEFRAG, ??????????????.
????? ????? ???????? ???? ????? ????????, ???????? ?? ????? ?????? ?? ???, ????? ??? ??????????? ????? ??????? ??????????, ????????? ????? ?????????? ???????????? ? ???? ?????? ? ??????????? ???????? ??????? ??? ?????? ??????????? ??????. ??????????? ????????, ? ??????? ??????????? ??? ????????, ? ?????? ????? ????? ?? microsoft.com/technet/prodtechnol/sql/2000/maintain/ss2kidbp.mspx. ???? ???????? ??????? ?? SQL Server 2000, ?? ????????? ?????? ??????????? ?? ??????? ??????.
????????? ???????????? ?????? ?????? ??????????????? ??? ????????????? ??? ??????? ?????? ???? ??? ?????? ?????? (?????????, ????????, ??????? ? ?????? ????????????) ?????? ????, ????? ????????, ????? ??????? ??????????????? ? ????? ???????????? ???? ?????????? ????????????. ???? ??? ????? ???? ??????? ???????? ??? ?????????? ?????????????? ???? ??????, ??????? ?????? ?????? ????????? ?????-?? ??????? ? ???????????? ????????, ??? ????? ????????? ????? ?????? ??????? ??? ????? ??????? ??? ?????? ? ??????, ??? ??????? ? ????????.
????? ??????? ?????? ????????????? ????????????? ????????????? ????????????????? ????????????? sys.dm_db_index_physical_stats (??? DBCC SHOWCONTIG ? SQL Server 2000) ??? ?????????????? ??????????? ????????????????? ???????? ? ?????? ????, ??????? ?? ???????? ?? ???, ? ???? ??, ?? ???. ? ?????? ??????????? ????????? ????? ??????????? ????????????? ???? ????? ????? ???????. ????????, ????????? ??????? ???? ??? ?????????? ???? ?????????? ????? ????? ? ??????? D ?????? ??????????? ????????????, ??????????? ????????????? ????????????????? ????????????? sys.dm_db_index_physical_stats ? SQL Server 2005 (msdn.microsoft.com/library/ms188917) ??? ??????? E ?????? ??????????? ????????????, ??????????? DBCC SHOWCONTIG ? SQL Server 2000 ? ????? (?? msdn.microsoft.com/library/aa258803).
????? ?? ????? ?? ?????????????, ???????????? ????????????? ????????? ?????? ? ????????? ????????????.
?????????? ???????? ???????? ?????? SQL Server, ??????? ??????, ??? ??????? ????????? ?????? ? ? ??????, ????? ??????? ? ??????? ???????????? ? ????? ???????? ????????? ?? ??? ??? ????????? ???????????; ??? ????????? ?????? ????????. ? ????? ???????? ?????? ??????? ?????? ????? ???????? ???????? ??????? ?????? ??????????, ??????????? ????????????? ???????? ?????? ??? ???????? ?????? ??????? ??? ???????. ????????, ????? ???? ???????? ??? ??????????? ????????, ?????????? ?????? ???? ?????? ? ??????, ????? ????? ???? ??????? ?????????????????? ????? ????????.
?????????? ????????? ????? ?????????? ?????? ???????/??????? ? ??????????? ????????????? ?????? ??? ??????????????? ????????. ?????????? ????? ???? ????????? ????? ???????? ???? ???????? ?????? ??? ????????????? ??????? (?????? ????????), ?? ?? ????? ????? ????????? ?? ?????? ?????????? ????????????? ???????? ?????? (???????? ????????). ???? ????????????? ???????? ? ??????? ???????? ???????????? ???????????, ?? ???????? ???????? ????? ???? ??????????, ? ??? ?????? ???????? ? ?????????? ?????????? ????? ???????, ??? ??? ?????? ????????.
???????? ????????, ??? ?????????? ????? ????????????? ????????? ? ????????????, ??????? ????????? ???? ?????? AUTO_CREATE_STATISTICS ? AUTO_UPDATE_STATISTICS, ??? ???????? ?? ???. 4. ??? ???????? ?? ?????????, ?? ???, ??? ?????? ??? ??????????? ???? ??????, ????? ????????? ??, ????? ?????????. ????? ?????????? ????? ???????? ? ? ???? ?????? ???????? ?? ?????????? ??????? ? ??????? ???????? UPDATE STATISTICS ??? ??????????? ?????? ?????????????? ???????????. ? ???????? ???????????? ????? ???????????? ???????? ????????? sp_updatestats, ??????? ????????? ??? ?????????? ?????????? (? SQL Server 2000 sp_updatestats ????????? ??? ?????????? ??? ??????????? ?? ????????).
???. 4. ????????? ?????????? ???? ?????? ????? SQL Server Management Studio
???? ????? ????????? ?????????? ??? ????? ????? ??????????? ????????????, ?? ????? ??????? ?? ????? ????????. ? UPDATE STATISTICS, ? sp_updatestats ?? ????????? ?????????? ????? ????????? ??????? ????? ?????? (???? ?????? ?????-??) ? ? ?? ????? ???? ????, ??? ?????? ????????. ?????????????? ??????? ????????????? ????????? ?????????? ? ??????? ?????? ????????. ? ?????? ?????????? ?????????? ??????? ????? ?????????????? ??????? ????? ???????? ??? ????? ?????? ??????????! ??? ????? ?????????, ???? ???????? ???????? ?? ?????????? ??????? ????????? ?????? ????????, ????????? ??????????????? ???????. ? ?????? ???????, ??? ????????????? ??????? ?????????? ?????? ?? ???????????.
?????-????, ?????? ????? ???? ????????????, ??????????? ??? ?????????? ? ?????-???? ?????? ?? ??? ????? ?????????????? ???? ???????? ? ? ???? ???? ?? ????, ??? ????? ????????? ? ????? ?????? ???????????. ???? ??????? ??????? ?????????????? ???? ???????? ????? ?? ???????, ?? ??? ??????????? ? ? ??????????. ???? ?????? ????? ??????? ???? ? ??????????? ????????????, ??? ????? ?????? ? ??? ???????????? ??????????. ? ????????? ?????????:
?????????????? ?????????? ? ?????????? ????? ????? ? ??????????? ????????? «Statistics Used by the Query Optimizer in Microsoft? SQL Server 2005» (???????????, ???????????? ????????????? ???????? ? Microsoft SQL Server 2005?) (microsoft.com/technet/prodtechnol/sql/2005/qrystats.mspx).
? ????????? ?? ????????????, ????????? ? ???????????????????. ?????? ???? ????????????? ?? ??????? ?? ??????????? ??????????? ? ????????? ???????????.
?????? ????????????, ????? ? ???? ?????? ??????????? ?????????? ??????????? ??????????, ??????? ?????? ?? ??????? ? ??? ??? ?? ????? ?????????, ??? ?????? ???????? ??????????????? ? ?????????????????? ? ?????? ????????? ????????? ??????????? ???????? ??????? ?????? ????????? ?????????? ?????????????? ? ??????? ??????????? ??????? ?? ??????? ???? ???? ??????, ?? ??? ?????? ????? ??????? ????????? ??????? ?????.
??????????? ??????????? ??????????? ?????????? ???????????????. ?????? ??? ? ????????? ??, ???????????? ????? ? ??? ?? ????? ???? ???????? ??????????? ??? ????-?? ? ?????????? ?????-??????, ??? SQL Server?. ?????????? ?????/?????? ??????? ?? ????? ?????????, ??? ???????????? ???????, ???????? ???????? ???????, ???????? ?????????, ??????????? RAID, ??????, ???? ? ???? ?????. ????? ????, ??? ????? ?????????? (? ?????????) ?????????.
????? ?? ???????? ???????????????? ??????? ???????? ???? ??????? ? ??????, ????? ???? ????? ?????? ?? ???????? ???? ??????. ???? ???? ?? ?????? ????????? ??????, ?????? ??? ? ???? ???????? ????????????? (??? ???? ???????? ?????? ?????????? ? ?????????? ????????? ??????? ?? ?????? ??? ??????? ???? ?????), ??????????? ????? ????? ????????????? ????? ???????? ?? ?????. ??? ????? ?????????, ????????? 8-??????????? ???????? ???? ?????? ?? ???? ??????? ?? 16 ??????? 512-??????? ???????? ?????. ???????? ?????? ????? ???????? ????????? ?? ???????? ?? ????? ????????, ?? ???????? ????????? ?? ???????? ?? ?????? ?????????? ????????. ????? ???????? ?????????? ??????????? ?????????. ??? ????? ??????????, ????? ??? ??????????
? SQL Server ???? ???????? ??? ??????????? ????? ????????. ? ???? ?????? ?????????? ?????????? ????? ?? ??????? ??????? ???????? ? ?????? ????????????? ??????? ?? ?? ????? (??? ?????????? ??????????????? ????? ??????? ???????? ?? ????). ???? ??? ?????????? ???????? ?????? ?????????, ?? SQL Server ?????, ??? ???????? ?????????, ? ?????? ??????.
? SQL Server 2005 ? ????? ??????? ??????? ???????? ????? ?????? ? ????????? ?????????? ????? ??????????? ?? ???????? ????????, ????????? ???????????? ??????? ???????. ? ???? ?????? ?????? ??????????? ????? ???? ???????? ?? ???????? ????? ????? ?? ??????? ? ????? ?? ???????? ??? ?????????? ?????? ??? ?????????? ??????????, ????? ??? ??, ??? ??? ??????????? ????????? ???????. ????? ????????? ??????????? ???? ??????? ???????? ?????????? ????????? ?? ????????? ????, ???????? ?????-???? ??????? ? ???????? ?? ???? ?????, ????? ??? ????? ???????? ??????????? ?????? ????????.
??? ??? ????? ????? ???????? ??????????? ????? ??????? ??????? ? SQL Server 2005 ? ?????, ? ??? SQL Server 2000 ???????? ??????????? ??????????? ???????. ????? ???????? ??????????? ????? ???????, ??????????? ????????? ????????:?
ALTER DATABASE MyDatabase SET PAGE_VERIFY CHECKSUM;
????? ???????? ??????????? ??????????? ??????? ??? SQL Server 2000, ??????????? ????????? ????????:
ALTER DATABASE MyDatabase SET TORN_PAGE_DETECTION ON;
??? ????????? ????????? ?????????? ??????? ??????????? ?? ????????, ?? ?????? ??? ?????? ????????. ??? ????? ????? ???????????? ?????? ???? ?????????????? ???????? ?????? ??????? ??? ?????????? ????? (? ??????????? ??????????? ?????? ??????? ????) ???????? ????????????? ??????? DBCC CHECKDB. ??? ??????????? ?? ????????? ????????? ??? ??????? ?????? ????? ?????? ??? ???????? ? ???? ??????, ????? ??????? ????????? ????????? ??? ??????????? ????? ??????? ??? ??????????? ????????? ???????. ??????? ????? ?????????? ??????????????, ????? ????? ???? ??????, ????? ???????????? ???????????? ? ????????????? ??? ?????????? ????????. ???????????? ????? ????? ???? ????????? ? ???? ????????????? ?????????, ????????? ?????????????? ? ??????? ?????? ??????????? 24 (???. 5).
???. 5. ????????? ?????????????? ??? ???? ?????? ??????????? 24
??? ??? ?????? ??????? ????????????? ???????? ?????????? ?????????? DBCC CHECKDB ?? ????? ?????? ??? ???????? ?? ???????????. ?????????? ????? ????????? ???? ??????? ? ???????? ? ???, ??? ????? ?? ??????? ?????????. ???, ???????????? ?????????, ? ??????? ??? ?? ???????????, ?????? ?? ??????????. ??????, ????????? DBCC CHECKDB ???? ???????? ?????? ????, ??????? ? ??????? SQL Server 2005, ? ????? ????? ? ??? ? ??????. ??. ????????? ????? ????? «CHECKDB From Every Angle» (?CHECKDB ?? ???? ???????)(sqlskills.com/blogs/paul), ? ??????? ??????? ????? ????????? ??????, ??????????? ???????? ???????????, ????????????? ? ???????????? ???????. ??? ????????? ??????????????? ??? ?????? ??????? ???????? ???????? ?????????? DBCC CHECKDB ????? ??????? ??????? ?????????? ??????????? ???? ??????. ? ?????????? ????????? ????????? ???????:
DBCC CHECKDB ('MyDatabase') WITH NO_INFOMSGS, ALL_ERRORMSGS;
???? ??? ??????? ???-?? ??????, DBCC ????? ??????????? ? ???? ??????. ????? ?????? ???????????? ?: ???? ??????, ???? DBCC CHECKDB ??????? ?????????????. ?????-?? ?? ????? ? ?????????? ????????? ?????.
??? ????????????? ??????????? ??? ????? ???? ???????? ??????????? ???????? ?????????????? ???????? ?????????????? ???? ?????? ?? ????????? ?????. ???????, ??? ???????????? ??????? ??????? ????? ? ??, ??? ???? ??? ?? ??????????. ??????? ????? ???????????? ????? ?????, ??? ????????? ???????? ???????????? ???? ?????? ???????? ?????, ????? ? ??? ??? ????????? ?????. ??????? ????? ??????? ? ???, ??? ??? ??????????, ?? ?????? ?????? ??? ?????? ??????, ????????? ??????????? ??? ??????-?????? ? ??????????? ??????????? ??????.
??? ??? ?????????? ????????? ??????????? ?????? ?????????????. ???????? ????????????? ?????????? ??????????? ? ?????????????? ??????? ?????? ?? ??????? ???? ??????, ?? ????????? ??? ???? ??????? ?????????? ?? ???????? ????????? ?????????? ???????????.
??-??????, ??????? ????????? ????????? ?????? ????????? ??????????? ???? ??????. ??? ???? ?????? ????????? ?? ?????? ???????, ?? ???????? ????? ????? ???????????????. ?????? ????????? ????? ???? ?????? ????? ???????, ????????? ??????? BACKUP DATABASE. ??????? ??????? ? ??????????? ????????????. ??? ?????????????? ?????? ????? ???????????? ???????? WITH CHECKSUM, ??????? ????????? ??????????? ????? (???? ??? ????) ???????? ??????? ? ????????? ??????????? ????? ??? ???? ????????? ?????. ??????? ??????? ???????, ?????????? ?????? ?????? ??? ?????, ??????? ????? ???? ?????????. ????????, ????????? ??????????? ???? ???? ?????? ??? ? ???? ????????, ??? ? ?????? ???? ????? ???? ???????? ??????? ?????? ? ??????. ? ?????? ????????????? ???? ??????? ?????????? ??????????? ???? ?????? ??????? ???? ? ?????? ?????????????? SIMPLE (?????? ????????? ??????? ??????????????), ????? ???????? ??????????, ????????? ? ??????????? ?????? ??????? ??????????.
??-??????, ??????? ????????? ????? ?? ????????? ???? ?? ??????, ???? ???? ?? ??? ????? ?????????? ? ?????? ????????? ????? ?????, ??? ???????. ????? ??????? ????????? ??????????? ????? ????????? ?????, ????????? ??????? RESTORE WITH VERIFYONLY (????? ??, ??. ??????????? ????????????). ???? ??? ???????? ????????? ????? ??? ??????????? ???????? WITH CHECKSUM, ??? ????????????? ??????? ???????? ????? ?????????, ????? ?? ??? ??????????? ????? ????????? ?????, ? ????? ??????????? ????? ??????? ?????? ???.
?-???????, ???? ?????????? ?????? ??????????? ???? ?????? ????? ???????? ? ????????????? ??? ???????? ?????? ?????? ??????/????????? ??????, ????????, ????? ????????? ? ?????????? ????????? ????? ???? ??????. ?????????? ????????? ????? ???? ?????? ???????? ?? ?????? ????????? ????? ???? ?????? ? ???????? ?????? ???? ????????? ? ??????? ???????? ????????? ?????? ????? (????? ?????????, ??? ?????????? ????????? ????? ???????? ??????????? ? ??? ?? ???). ? ???????? ??????? ????????? ????? ???????? ?????????? ?????? ?????? ????????? ????? ? ????????? ?????????? ????? ?????? ?????? ????. ?????????? ????? ????????????? ??????? ?????????????? ? ????????? ?? ?????????????? ?????? ???????. ? ?????? ????????????? ?????? ??????? ? ??????????? ?????????? ??????????? ??? ?????? ????? ??????? ???????????? ?????? ?????????????? SIMPLE.
???????, ????????? ??????????? ?? ?????????????? ????????????? ????????? ??????????? ????????. ??? ???????? ???? ? ??????? ?????????????? FULL (? BULK_LOGGED) ? ????????????? ????????? ????? ???? ??????? ???????, ????????? ? ??????? ?????????? ?????????? ??????????? ???????. ??????????? ?????? ????????? ??????? ???????, ? ????? ????????????? ?????????? ??????? (?, ????????, ???????????) ????????? ??????????? ????????? ???????????? ????????? ?? ????? ?????? ??????? ? ????????? ?? ??????. ??????? ?? ??? ?????????? ???, ??? ?????? ?????????? ??????, ???? ??? ?? ?????????????, ?????? ????????? ?????. ? ???????? ??????? ????????? ????? ????? ???????? ?????????? ?????? ?????? ????????? ????? ? ????????? ?????????? ????? ?????? ?????? ???? ? ????????? ????? ??????? ?????? ???????.
????? ????????? ?????????? ??????????? ? ??????????? ?? ?????????? ????? ???? ??????????. ??? ???????, ??????? ????????? ????????? ?????? ????????? ??????????? ???? ??????, ????? ????????? ? ??????? ??? ??????? ?????? ??????? ???????, ????????? ???? ?????? ?? ??????? ????? ???? ?????????????.
??? ????? ???????, ??????????? ????????????????? ? ??????????? ???? ?????? ??????? ?????????? ?????????? ???????????? ?????. ??? ??? ????????? ??????????? ?????? ??? ????????? ??????????????? ??? ??????, ??????? ????????? ?????????? ??????:
?c??????: TechNet Magazine
Tags: SQL, SQL Server