??? SQL Server statistical ?????? ??????????? (autostats)

???? ?????? ???? ??????
???? ID: 195565 - ?? ???????? ?? ?????? ??? ?? ?? ???? ???? ???? ??.
??? ?? ??????? ???? | ??? ?? ??????? ????

?? ????? ??

??????

??-???????? statistical ?????? ???????????, AutoStat, ??????? ?????? ?? ??????? overhead ????? ???????? ??? ?? ??? ?? ????? ???? ?? ????? ?? ???? ??:
  • Initiating ???? ??????? ??????? ?? ????? statistical ?????? ???

    -??-
  • ??? ??? ??? ?? ???? ????? ?? ?????? ????? ??????????? ?? ?? ???? excessively ?????? initiating ?????
?? ???? ?? ???????? ?????? ?? ??? ?? ?? autostats ?? ????? ???? ??? ?? ?? ???? ??????? ??? ???????? ?? ??????? ????? ????? ?????? ????? ?? ??? ??????? ?? ???? ??? detail ???? ?? ??? ???

??? SQL Server 2000 autostats ?? ???? ??? ??????? ?? ??? ????? "?????? Used ?? ?????? ??????????? Microsoft SQL Server 2000 ???" ????? MSDN ??? ???? ??:
(SQL.80) http://msdn2.Microsoft.com/en-us/library/aa902688 .aspx


???:??? ?? Microsoft SQL Server 2005 ?? ????? ?? ??? ???, ?? ???? ????? ?????? ????? ?? ?? SQL Server 2005 ??? ?????? ??????????? ?? ???? ??? ??????? ?? ??? ????? Microsoft ????? ???? ?????:
HTTP://TechNet.Microsoft.com/en-us/library/cc966419.aspx

???? ???????

??????? ???????

SQL ????? ?? ??? ????-?????? ??????????? ???????? ?? ??????????? ?? ?????? ???? ?? statistical ??????? ?? ??? ???????? ????????? ?? ???? ??? ?? makes ?? ????? ????? ??? ?? ?? ?????? statistical ???????, ???? SQL ????? ???? ????? ?????? ?? ??? ????? ???????? ????? ?? ??? ????? ?? ??? challenged ?? ?? ???? ????

?????? ??????????? ?? ????-?????? ?????? ?? ????? ???? ??? ?????? ?? ??? SQL ????? ??? ???????? ?????? ?? ???? ??:
  • ?????? ??? ????????? ?? ???????
  • ?????? ?? ?????? ????? ??? ??????? ?? ???????
  • ???????? ?? ?????? ?? ????? ?? ????? ?????? ?? ??? ??? ?? ?????? ?? ???????
(???????? ??????????? ?? ???) ????, ??????????? ?? ??? ???????? ??????? ???????? ?? ??:
  • ??? equi ????? ??????????? ?? ???? ??????
  • ??? ????? ?????? ?? densities.
  • ??? ????? ??????
??????????? ?? ?????? ???????? ??? ?? ???? ???? ??? ?? ?? ??? ??????????? ????? ??? ???? ?????, ???? ?? ??? ????? ?? ???? ??????? ?? ??? ??? ?? ?????? ???? ???? ?? ????

???? ?? ??? ??? ?? ?????? ?? ??? ??? ??????? ??? statistical ??????? ????, ?? ??? SQL Server introduces AutoStat, ??, ?????? ?? ??????, ?? ??????? SQL ????? ?? ?????? ?? ?? ??? ???????? ????????? ?????? ?? ?? ?? ?? ???? ?????? ?? ??? ?????? ????: ?????? ???? ??? ?????? ??? ??, SQL Server introduces ????:-?????-?????, ?? ???? ??????? ?????? ?? ???? ??????? ?? ??? ?????? ??? ????????? ?? ????: ????? ???? ?? ??? ????? ?? ???? ???? ???

?? AutoStat ????? imminent ?? ????????

??? ????? ??? ??, ?? ??? ??? AutoStat ????? ????: ?????? ???? ????? ?????? ?? ??? ?????? ?? ??? "???????? ?????????" ?? ????? ???? ??? Sysindexes.rowmodctr ????? ??? ?? ???? ???? ???? ??, ??, ??? ?? ??? ?? ???? ??? adversely ???????? ?????? ???????? ?? ?????? making ????????? ???? ?????? ?? ??? ?????? ?? ???? ?? ?????? ??? ????? ????? ?? ??? ?? ???? ?? ?? ?? ??? ?????? ??:
  • ???? ??? ?????? ???????? ??? ?? ???
  • ???? ??? ?????? ????? ??? ?? ???
  • ??? ?????????? ????? ?? ??? ??? ?????? ??? ?? ???
???:: TRUNCATE ?????? rowmodctr ??????? ???? ???? ???

?????? ?? ????? ?????? ??? ?? ???, ?? ??? rowmodctr ??? 0 ?? ??? ????? ???? ?? ?? ?????? ?????? ??????? ????? ?????? ?????

???, ????????? ??? ?? ???? ???????? ????????? ?? ???????? ????? ??? ?? ???? ??? ?? ?? ?? ????? ?? ????? ????????? ??, ??? ????? ?????? ??????? ????? ?? ????? ?? ??????? ??????? ?? ???? ??? ?? ?????? ?????? ???, ???????? ????????? ?? ??? ????? recompiled ?? ??????

????: ?????? ??????? ?? ??? ??? ?????????? ??:
  • ??? ???? ?????? ?? ??? cardinality ?? ?? ????? ??, ?? ?????? tempdb ??????? ??? ??, ?? ???????? ?????? ??? ?? ???????? ?? ??? ?????? ????:?
  • ??? ???? ?????? ?? ??? cardinality ?? 6 ?? ????, ????? ?? ?? ?? ???? ????? 500 ???? ?? ???, ?????? ?????? ?? 500 ?????? ?????
  • ??? cardinality ???? ?????? 500, ?? ???? ?? ?? ??? ?????? ????? ?? (500 + ?????? ?? 20 ???????) ???????? ? ?? ???
  • ?????? ??, ?? ??? cardinality ???????? ???? ????: ?????? ????? ???????
???:: ??? ?? strictest sense SQL Server cardinality ?? ?????? ??? ????????? ?? ?????? ?? ??? ??? ???? ???? ???

???:: ???? ?? ???????? cardinality, selectivity predicate ?? ?? ???????? AutoStats ?????? ???? ???? ?? ??? ?? ????? ???? ?? ???? ?? ?????? afer ???????? 500 ?????? ??? cardinality ?? < 500="" or="" for="" every="" 20%="" of="" changes="" if="" cardinality="" were=""> 500? ????? ??????? (??? ?????? 1 ?? 4, 1 ?? 4, ???????? ???? ?? ???) ?? selectivity ?? ???? ?? ????? ???? ??? ?? ?? ???? ?????? ?? ?? ??????? ?? ?????????? ?? ??????? ???? ?? ??? ??? ???????? ?? ?????? ?? ???? ???? ?? ???? AutoStats ??????? ???? ?? ??? ?????? ?????? ?? ???????? ?????? ???

??? ?????????? ???? ?????? ?? ??? ??? summarised ?? ???? ???:
_________________________________________________________________________________
 Table Type | Empty Condition | Threshold When Empty |Threshold When Not Empty 
_________________________________________________________________________________
 Permanent  | < 500 rows      | # of Changes >= 500  | # of Changes >= 500 + (20% of Cardinality)
___________________________________________________________________________
 Temporary  | < 6 rows        | # of Changes >= 6    | # of Changes >= 500 + (20% of Cardinality)
___________________________________________________________________________
Table
Variables   | Change in cardinality does not affect AutoStats generation.
___________________________________________________________________________
?? concept demonstrate ???? ??? ??? ???? ?? ??? ?? ?????? ????? ???:

?????? 1

Pubs ???????, ?? 23 ????????? ??? ??? ?? ?? ????????????? ??? ??? ?????? ?? ???? ?? ????? ????? ????? ????? ???????????, UPKCL_auidind, ?? ?????, au_id, ?? ?????????? ?? ?? ?? ????????? nonclustered ???????????, aunmind, au_lname ?? au_fname ????? ?? ????? ??? ??? ?? ?????? ??? ?? ?? 500 ????????? ???, ??????? AutoStat 500 ?????? ???? ???????? ? ?? ??? ?? ??? ??????? ????? ???????? 500 ?? ?? ???? ??? ?? ???? ???????? ???? ??, ????? ??, ???? au_lname, ?? ???? ?? ?????? thereof ??? ?????????? ????? ?? ????? ???

?? ?? sysindexes.rowmodctr ???, ???????? ?????? ?? incremented ???? ?? ?????? ?? ????? ?????? ??????? ?? ?????, ????? predict ?? ???? ???? ?? ?? ?? ????? ???? ?? ?? 500 ?? ???? ?? ??? ??, ?? ?? ?? ??????? ???? ?? ??? ?????? ????? ??????? ?? ???? ????

?????? 2

????? ??????, t2, ?????? ?? cardinality 1,000 ?? ???? ?? ????? ????? 500 ????????? ?? ???? ?? ??? ???????? ?? ??? ?????? ????? ????? SQL Server ?? (500 + 20 ???????) ???????? ??? ?? ???? ??? ?? ?? ??? ??, 1,000 ?? 20 ??????? ?? 200, ????? AutoStat ?????? ?? ??? ???? 700 ?????? ??? ?? ??? ?? ??? ??????? ???? ?? ????? ?? ??? ??????? ?? ???? ????

Autostats determination ???????

?? AutoStat ???? ????? ?? determination ?? ???????? ???? ?? ??? ?? ???? ?? ?? ?? sysindexes ?????? poll ???? ?? ?? ????? ???? ?? ?????? ?????? reaching ??????? ????? ???? ??? ???? ?? ??? ??? ??? ?????????? ????? ??:
   if (sysindexes.rows > 500)
      if (sysindexes.rows * 0.20 >= sysindexes.rowmodctr && production
      hours) //500 change leeway
         begin
            disable autostats
            log autostats disable
         end
      else
         begin
            stats ok
         end
   else
      if (sysindexes.rowmodctr >= 425) //75 change leeway
         begin
            disable autostats
            log autostats disable
         end
				

?? ??? ??? ????? ??? ?? ??? ????? ??????? ???:
  • ????? ??? ?? ??? ?? ????? ????? ???? ?? ??? ??? ??? ??? ???????? ?? ??????? ?????? ????? ?? ??????

    -??-
  • ??????? ???????? ?????? ?????? ?????? ????? ????? ?? ?? ??? 0 ?? ?????? ????? ????? AutoStat, ???: ??????

???????? ?? ?? ???? ?????? ????? ???? ?????? ?? ??????? ????? ???

?????? ?? ??, ?? ??? ???? obvious ?????? ?? AutoStat proven Problematic, ???? ??? ?? ????: ?????????? ?????, ???? intrusive ?? ??? ?? ????? ?????? ????? ?? ??????? ???? ?? ??? ????? ??????? ?????????? ?? ???? ?????? ?? ????? ???? ?? ???? ?? ?? ???? ??? ??? ?????? ????? ??? ?? sp_autostats ???????? ????????? ?? ????? ?? ?? ??? ?????? ????? ??? ?? ??? ???????? ??:
   UPDATE STATISTICS <table>...with NORECOMPUTE
				

Sp_autostats ???????? ????????? ?? ??? ???????? ??:
sp_autostats <table_name>, <stats_flag>, <index_name> </index_name></stats_flag></table_name>
???? <stats_flag>?? ?? "??" ?? "???" ??.</stats_flag>

?? ?????? ????? ?? ??????-??????? ?? ???? ???? ?? ????? ?? ????: ??????? ?? ????? ???? ?? ??? sp_dboption ?? ????? ?? ???? ???:
sp_dboption <dbname>, '????: ?????? ?????', <on |="" off=""> </on></dbname>

-??-

sp_dboption <dbname>, '????: ??? ?????', <on |="" off=""> </on></dbname>

???????? ?????? ????? ??????????? ?? ?????? ?? ????????

??????? ???, ????? ???????? ?? ??? AutoStat ?? ????? ???? ?? short ???? ???? ?? ?? concurrently ????? ?? ??? ?? ???????? ?????? ????? ??? ?? ?????? ?? ???????? ???? ?? ??? (DCR 51539 ?? ??? filed ?? ??? ??)? ????? ?? ??? ??? ???????? ?? ????? ?????? ????? ???????? ??????????? ?? ?????? ?? ?????, ????????

???????? ???? ?? Autostats ????? ?? ??? ??

?? ?? ??????-?????? ???????? ????????? ?? ??? ??? ??? ?????? ?? AutoStat recompiled ???? ?? ??? ??, ?? ??????? ???? ?? ??? ???? ????? 205 ?? ????? ?? ????? ?? ????? ???? ?????? ??? ???? ?? ??? ????? ????? ???? ?????:
1998-10-15 11:10:51.98 spid9 Recompile ????: ProcName: sp_helpindex
LineNo: 75 StmtNo: 29
????? ???? 205 ????? ???? ??? ??, ?? ????? ????? ????? ?? ?????? 8721 ????? ?????? ?? ???? ??? ?? ?? AutoStat ?????? ?????? ?? ????? ????? ?????? RowModCnt ???, ?? 0 ?? ???? ?? ????? distinguished ?? ???? ???? ??????? ?????? ?????? ??????? ?? ??? ???? RowModCnt ??? 0:
1998-10-15 11:38:43.68 spid8 ?????? ?????: Tbl Dbid: ??? Objid:
133575514 RowModCnt: 60500 RowModLimit: 60499
?? ????? ?? ??? "RowModCnt" ?? ?????? ??? ?????? ?? ??? ??????? "RowModLimit" ?? ????????? ?? ??, ?? ???? ?? ?? ??, ?? ?????? ?????? ?? ??? ?????? ????? ??? ???????? ????

?? ?? ???? ?? ????? ???? 8721, ?? ?????? ??? ??? ??????? ???? ????? ?? AutoStat ????? ??? ?? ?? ????? ???? ?? ???? ????? ????? ?? ??? ??????? ?? ???? ??? ?? ?? ?????? ?? ?? ?????? ?????????? ??:
1998-10-14 16:22:13.21 spid13 AUTOSTATS: Tbl ??????: [??????]
?????????: 23 Mods: 501 ?????: 500 ????: 47ms UpdCount: 2
?? ????? ?? ??? "Mods" ?? ?????? ??? ?????? ?? ??? ??????? "?????" ?? ?????? ?????????, "????" ?? ?????? ????? ??? ?? ???? ???? ?? ??? ?????? ??? ?? ?????? ??, ?? "UpdCount" ?? ?????? ??? ?? ????? ?? ?????? ???

?? ?? ?????? ????? ????? ????? ?? ??? ????? ???? ?? ??? SQL Server Profiler ?? ????? ?? ????? ??? ???? ?? ???, ????? ????? ?? ????:
  1. ????? ????Profiler???? ??,??????? ????-????? ????, ?? ???? ?????????.
  2. ????? ?????????????? ?? ?????????, ?? ???? ??? ?? ??? ??????? ????? ????.
  3. ??? ??? ????? ????????? ?? ?? ??????????? ?????????????????????: ?????? ?????sub-event.
????? ???: ??? AutoStat ?????? ?? ????? ?? ?????? ???? ?? ??? ??, ????? ?????? ??? ????? ???? ?? ???? ?????? ??? ???? ?? ???? Thoroughly experiment ?? ????? ????? ?? ??? ??????? ?? ?????? ?????????? ????? ?? ????? ???? ?? ?????

?????? locks

SQL ????? employs ?????? locks, ?? ??? ???? ?????? ?? ??? ?????? ?????? ?? ??? ?????? ?? ????? ??? ?? ?? ?????? ??:
   Sch-S: Schema Stability Lock
   ----------------------------
   This lock ensures that a schema element, such as a table or index, will
   not be dropped while any session holds a schema stability lock on the
   schema element.

   Sch-M-UPD-STATS: Schema Modification Lock
   -----------------------------------------
   This is a non-blocking lock that is used by the system to ensure that
   only one automatic UPDATE STATISTICS process is run against a table at
   any given point in time. The sp_lock stored procedure will report this
   lock has having a type = TAB, resouce = UPD-STATS and mode = SCH-M.
				
?? ?? locks sp_lock ??? ?? ?? ?? syslockinfo ?????? ?? ??? ?? ??? ???? ????

???

???? ID: 195565 - ????? ???????: 02 ?????? 2010 - ??????: 4.0
???? ???? ???? ??:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Workgroup Edition
??????: 
kbinfo kbmt KB195565 KbMthi
???? ?????? ????????
??????????: ?? ???? ?? ???? ??????? ?? ????? ?? Microsoft ????-?????? ?????????? ?????? ?????? ???? ??? ??. Microsoft ???? ??? ????-???????? ?? ????-???????? ????? ?????? ?? ???? ???????? ???? ?? ???? ????? ????? ??? ?? ??? ?????? ?? ???? ???? ???? ??? ????? ??. ???????, ????-???????? ???? ????? ???? ???? ???? ???. ?????, ????????, ?????-???? ?? ??????? ?? ???????? ?? ???? ???, ???? ?? ??? ?????? ???? ???? ??? ????? ??? ?? ???? ??. Microsoft ??????? ??? ???? ?? ?????? ?? ??????????, ????????? ?? ??? ?????? ?? ???? ????? ?? ???? ???????? ?? ??? ???? ????? ?? ??? ????????? ???? ??. Microsoft ????-?????? ?????????? ?? ????? ?????? ?? ?? ??? ??.
?????????? ?? ??????? ????????? ??????? ??:195565

??????????? ???

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com