Örököltem egy karbantartási tervet, amely a következőket hajtja végre:
- Tisztítsa meg a régi adatokat
- Ellenőrzi a DB integritását
- Adatbázis- és tranzakciónapló-mentéseket hajt végre
- Átrendezi indexeinket
- Statisztikák frissítése
- Régi biztonsági mentések és karbantartási terv fájlok törlése
A 23 perces karbantartási tervből a statisztikák frissítése megdöbbentően 13 percet vesz igénybe. Ez alatt a 13 perces időszak alatt az adatbázishoz való hozzáférés blokkolva van (vagy legalábbis, a replikáció ebből a adatbázisból másoknak szünetel).
Kérdésem:
Mikor kell A statisztika frissítése, és miért?
Ez olyan dolognak tűnik, amelyet ritkábban kellene elvégeznünk, mint minden nap. Igyekszem kiszabadítani bennünket a “csak azért” gondolkodásmódból, ha felesleges Karbantartás.
Megjegyzések
- Milyen gyakran / milyen módon kerül sor / frissítés / törlés bármely sorra? Számomra ez a döntő tényező.
- @JNK Naponta ~ 70 000 sort szúrunk be a teljes DB-be. ~ 100 sor frissítése havonta.
- 1 – Ez akkor relevánsabb, ha TÁBLÁZATI alapján tudjuk, hány sor, és 2 -százalékosan. A napi 70 ezer sor egy 1m-es táblánál sokkal különbözik az 500m-es táblától
- Azt javasolnám, hogy használjon olyan dolgokat, mint ola.hallengren.com / … ez a megoldás csak újjáépíti / átszervezi és frissíti a szükségeseket, így rövidebb ideig tarthat a karbantartási terv, és sok lyuk naplóterületet takaríthat meg.
Válasz
Ha nincs karbantartási ideje, akkor a statisztikák napi frissítése valószínűleg kissé túlterhelő . Különösen akkor, ha az adatbázis automatikus frissítési statisztikája be van kapcsolva . Az eredeti bejegyzésben azt mondta, hogy a felhasználók a karbantartási terv miatt teljesítménycsökkenést tapasztalnak. Nincs más idő a karbantartás futtatására terv? Nincs más ablak? Látom, hogy a terv magában foglalja az index átszervezését, mikor építi újra az indexeket? Amikor ez a művelet megtörténik, a statisztikák automatikusan frissülnek (feltéve, hogy ez nincs kikapcsolva a dex).
A statisztikák frissítésének pontos gyakorisága nagymértékben függ attól, hogy az indexei és adatai mennyi adatmódosítást kapnak . Ha nagyon kevés módosítás történik (INSERT
, UPDATE
, DELETE
), akkor ritkább ütemezése lehet a frissítési statisztikai feladatnak.
Az egyik módja annak kiderítésére, hogy a statisztikák elavultak-e, ha megnézi a végrehajtási terveket, és ha a becsült sorok nagyban különböznek a tényleges visszaküldött soroktól. akkor ez jól jelzi, hogy az intervallumot növelni kell. Esetedben másfelé haladsz, és egy kis próba lehet a számodra. Frissítsd a statisztikákat hetente, és ha kezded látni az elavult statisztikák árulkodó jeleit, akkor menj onnan.
Ha automatikus frissítési statisztikákat használ az adatbázisához, a statisztikák frissítésének küszöbét lásd ebben a hivatkozásban .
Megjegyzések
- Az indexeket hetente egyszer újjáépítjük.
- @ Onion-Knight Ezután a statisztikákat is hetente egyszer frissíti, amikor felépíti indexeit. . Ez elegendő lehet, ha ‘ átfogó index-újjáépítést hajt végre az adatbázisban.
Válasz
Mikor frissítjük a statisztikákat?
akkor és csak akkor, ha automatikus frissítési statisztika szolgáltatás nem elég jó az Ön igényeinek. arra gondolok, hogy ha az automatikus létrehozás és az automatikus frissítés statisztikája BE van kapcsolva, és rossz lekérdezési tervet kap, mert a statisztikák nem pontosak vagy aktuálisak, akkor célszerű lehet a statisztikák létrehozásának és frissítésének ellenőrzése. de ha jól állsz az sql szerver teljesítményével és a lekérdezés végrehajtási idejével.
akkor azt javaslom, hogy állítsd le a statisztikák frissítését parancs a karbantartási tervekből
a statisztikák frissítése fontos és hasznos 1. lehetővé teszi az SQL Server lekérdezés-optimalizáló számára, hogy folyamatosan jó lekérdezési terveket készítsen, miközben a fejlesztési és adminisztrációs költségek alacsonyak maradnak. 2. A statisztikákat a lekérdezés-optimalizáló használja megbecsülni a kifejezések szelektivitását, és ezáltal a közbenső és a végső lekérdezési eredmények méretét. 3.A jó statisztikák lehetővé teszik az optimalizáló számára, hogy pontosan felmérje a különböző lekérdezési tervek költségeit, majd jó minőségű tervet válasszon.
Ha manuálisan szeretné frissíteni a statisztikákat, akkor először tudnia kell Amikor a statisztikák automatikusan frissülnek
Ha az SQL Server lekérdezés-optimalizáló statisztikát igényel egy adott oszlopra vonatkozóan egy jelentős frissítésen átesett táblázatban a statisztika legutóbbi létrehozása vagy frissítése óta végzett tevékenység, az SQL Server automatikusan frissíti a statisztikát az oszlopértékek mintavételével (automatikus frissítési statisztikák használatával). Az automatikus statisztikai frissítést a lekérdezés optimalizálása vagy egy lefordított terv végrehajtása váltja ki, és csak a lekérdezésben említett oszlopok egy részhalmazát vonja maga után. A statisztikákat frissítjük a lekérdezés összeállítása előtt, ha az AUTO_UPDATE_STATISTCS_ASYNC ki van kapcsolva.
Íme néhány kedves cikk, amelyek arról szólnak, amikor a frissítési statisztikák elindulnak az SQL szerveren.
az egyszerű beszélgetésből 13. szakasz. Mikor indul az automatikus frissítés a statisztikákra?
miután megtudta, hogy a statisztika mikor vált be, ez segít eldönteni, hogy mikor frissítse a statisztikákat manuálisan. = “01e8974dd9”> BrentOzar és Kimberly az sqlskills-ben nagyon jó blogok & bloggerek .