Töötate praegu ühenduseta, ootame Interneti-ühenduse taasloomist

Kuidas kokkutõmbumisvastane SQL Serveri andmebaasi tempdb

NB! Artikkel on tõlgitud Microsofti masintõlketarkvaraga ja seda saab parandada Kogukonnapõhise tõlkeraamistiku (CTF) tehnoloogiaga. Microsoft pakub masintõlgitud, kogukonna järeltöödeldud ja inimtõlgitud artikleid, et anda mitmekeelne juurdepääs kõigile meie teabebaasi artiklitele. Masintõlgitud ja järeltöödeldud artiklites võib olla sõnavara-, süntaksi- ja/või grammatikavigu. Microsoft ei vastuta mingite ebatäpsuste, tõrgete ega kahjude eest, mis on tulenenud sisu valest tõlkest või selle kasutamisest meie klientide poolt. Lisateavet CTF-i kohta leiate aadressilt http://support.microsoft.com/gp/machine-translation-corrections/et.

Artikli ingliskeelse versiooni kuvamiseks klõpsake siin: 307487
Kokkuvõte
See artikkel käsitleb kolme meetodit, kahaneb tempdb andmebaasi suurus, mis on väiksem kui selle viimase konfigureeritud suurusest kasutavad. Esimene meetod annab teile täieliku kontrolli tempdb faili suurus. Esimene meetod nõuab taaskäivitamist Microsoft SQL Server. Teine meetod kahaneb tempdb andmebaasi ja võib-olla taaskäivitama SQL Server. Kolmas meetod võimaldab kahaneb üksikute toimikutetempdb andmebaasis. Kaks viimast meetodid nõuavad, et ükski tegevus ei teki tempdb andmebaasis kahandamise toiming.

MärkusKui kasutate SQL Server 2005, need meetodid ka suhtes. Siiski tuleks kasutada SQL Server Management Studio Enterprise Manager ja Query Analyzer asemel nende toimingute tegemiseks. Olema teadlikud, et SQL Server Management Studio SQL Server 2005 Näita suurusttempdbfaile pärast kahandamise toiming. "Praegu eraldatud ruumi" väärtus alati tõmmatakse sys.master_files DMV ja see väärtus ei värskendata pärast kahandamise toimingtempdb andmebaasi. Leida õige suurusega tempdb failid pärast kahandamise toiming, käivitada SQL Server Management Studio järgmise avalduse:
use tempdbselect (size*8) as FileSizeKB from sys.database_files

MärkusSQL Server 2008 ei mõjuta vale suurustempdbfailid kuvatakse kahandamise toiming pärast probleemi.

Tempdb teave

Tempdb on ajutine tööruumi. Teiste hulgas SQL Server kasutab tempdb järgmist:
  • Ladustamise otseselt loodud Ajutised tabelid
  • Worktables, mis hoiavad käigus päringu töötlemine ja sorteerimine vahepealseid tulemusi
  • Juhtumiga staatilisi kursoreid
SQL Server salvestab ainult piisavalt teavet tempdbtehingute registri tehingu juurde tagasi pöörduda, kuid mitte uuesti teha tehingute andmebaasi taastamise ajal. See funktsioon suurendab jõudlust INSERT avaldusedtempdb. Lisaks sa ei ole logiteave uuesti teha tehinguid, sest tempdb uuesti luua iga kord, SQL Server taaskäivitada. Seetõttu on kandeid rulli edasi või tagasi pöörata. SQL Serveri käivitamisel tempdb uuesti loodud kasutamine mudelit andmebaasi koopia ja tempdb lähtestatakse selle viimase konfigureeritud suurusele.

Vaikimisi konfigureeritakse tempdb andmebaasi mahutaks vastavalt vajadusele. Seetõttu selle andmebaasi võib kasvada ajas suurus suurem kui soovitud suurus. Lihtne uuesti SQL Server taastab tempdb suurus viimase konfigureeritud suurus. Konfigureeritud suurus on ellu kasutades faili suuruse muutmine näiteks Muuda andmebaasi, mis kasutab võimalust muuta faili või ka DBCC SHRINKFILE avaldus eelmisel otsest suurusega.

Saate järgmisest kolmest meetodist kahanebtempdbsuurus, mis on väiksem kui selle konfigureeritud suurusest.

1. Meetod: Kasuta tehinguid-SQL käsud
Märkus See meetod nõuab taaskäivitamist SQL Server.

  1. Peatus SQL Server. Käsuviibal tippige järgmine käsk käivitada SQL Server:
    sqlservr - c -f
    Selle -c ja -fparameetrite põhjustada SQL serveri käivitamiseks minimaalne konfiguratsioon mode, mis ontempdbsuurus 1 MB faili ja 0,5 MB logifaili.

    Märkus SQL-serveri nime kasutamisel peab muutuma sobivasse kausta (programm Files\Microsoft SQL Server\MSSQL$ astme name\Binn) ja kasutada nende -s lüliti (-s % instance_name %).
  2. SQL serveriga Query Analyzer abil ja seejärel käivitage järgmisi tehinguid-SQL käsud:
       ALTER DATABASE tempdb MODIFY FILE   (NAME = 'tempdev', SIZE = target_size_in_MB)    --Desired target size for the data file   ALTER DATABASE tempdb MODIFY FILE   (NAME = 'templog', SIZE = target_size_in_MB)   --Desired target size for the log file					
  3. Peatus SQL Server. Selleks vajutage klahvikombinatsiooni Ctrl + C ja Käsuviiba akna SQL Serveri teenuse taaskäivitamiseks ja kontrollige suurus failid Tempdb.mdf ja Templog.ldf.
Selle meetodi piiranguks asjaolu, et see toimib ainult default tempdb loogiline faile: tempdev ja templog. Kuitempdblisada rohkem faile, saate neil kahaneb pärast taaskäivitamist SQL serveri teenust. Kõik tempdb failid on uuesti loodud käivitamisel. Kuid need on tühjad ja eemaldamist. Tempdbtäiendavate failide eemaldamiseks kasutage käsu Muuda andmebaasi fail eemaldada suvandi abil.

2. Meetod: Kahandada ka DBCC SHRINKDATABASE'I käsuga
Kahandada ka DBCC SHRINKDATABASE'I käsuga kahaneb tempdb andmebaasi. Kahandada ka DBCC SHRINKDATABASE'I saab parameeter target_percent. See on vaba ruumi vasakule andmebaasi faili soovitud protsent pärast andmebaasi on kahanenud. Kahandada ka DBCC SHRINKDATABASE'I kasutamisel võib olla SQL serveri taaskäivitama.

Oluline Kahandada ka DBCC SHRINKDATABASE'I joostes muu tegevus toimub tempdb andmebaasiga. Et muid protsesse ei saa kasutada tempdb ajal kahandada ka DBCC SHRINKDATABASE'I töötab, peab algama SQL Server ühe kasutaja režiimis. Lisateabe saamiseks vt "Mõjusid kahandada ka DBCC SHRINKDATABASE'I või DBCCSHRINKFILE täitmise ajal tempdb on kasutusel" jagu.
  1. Sõltub ruumi, mis on praegu kasutusel tempdbsp_spaceused salvestatud protseduuri abil. Seejärel arvutada vaba ruum, mis on jäetud kasutamiseks parameetrina kahandada ka DBCC SHRINKDATABASE'I protsent. See arvutus põhineb soovitud andmebaasi suurus.

    Märkus Mõnel juhul peate täitma sp_spaceused @updateusage True ruum, mida kasutatakse ümberarvutamiseks ja saada viimase aruande. Vaadake SQL Server Books Online rohkem infot sp_spaceused salvestatud protseduuri.

    Näidet:
    Eeldada, et tempdb on kaks faili: esmane andmefail (Tempdb.mdf), mis on 100 MB ja logifail (Tempdb.ldf), mis on 30 MB. Oletame, et sp_spaceusedteatab, et esmane andmefail sisaldab 60 MB andmeid. Eeldame, et te soovite vähendada esmase andmefaili 80 MB. Arvuta vaba ruumi vasakule soovitud protsent pärast selle kahaneb: 80 MB-60 MB = 20 MB. Nüüd Jaga 20 MB 80 MB = 25% ja mis on teietarget_percent. Transaktsioonilogifail on kahanenud vastavalt, jättes 25% või 20 MB ruumi tasuta pärast andmebaasi on kahanenud.
  2. SQL serveriga Query Analyzer abil ja seejärel käivitage järgmisi tehinguid-SQL käsud:
       dbcc shrinkdatabase (tempdb, 'target percent')    -- This command shrinks the tempdb database					
On kahandada ka DBCC SHRINKDATABASE'I käsk tempdb andmebaasi kasutamise piiranguid. Andmete ja logifailid eksperdirühma ei tohi olla väiksem, kui suurus, mis on määratud, kuna andmebaas oli loodud või viimase suurusest, mis tehti kindlaks määranud kasutades näiteks Muuda andmebaasi, mis kasutab võimalust muuta faili või ka DBCC SHRINKFILE käsu operatsiooni muutuvas faili suurus väiksem. Teine piirang kahandada ka DBCC SHRINKDATABASE'I on target_percentage parameeter ja selle sõltuvust praegune ruum, mida kasutatakse arvutamisel.

3. Meetod: Ka DBCC SHRINKFILE käsuga
Ka DBCC SHRINKFILE käsuga kahaneb üksikutetempdb faile. Ka DBCC SHRINKFILE pakub rohkem paindlikkust kui kahandada ka DBCC SHRINKDATABASE'I seetõttu saate kasutada seda ühe andmebaasifaili mõjutamata teisi faile, mis kuuluvad samasse andmebaasi. Ka DBCC SHRINKFILE saab eksperdirühma parameeter ja see on lõplik suureks andmebaasifaili.

Oluline Ka DBCC SHRINKFILE käsu peate käivitama, kui ükski muu tegevus toimub tempdb andmebaasis. Veenduge, et muid protsesse ei saa kasutada tempdb kui ka DBCC SHRINKFILE käivitab, peate taaskäivitama SQL Server ühe kasutaja režiimis. Lisateavet ka DBCC SHRINKFILE jaotisest "Mõjusid kahandada ka DBCC SHRINKDATABASE'I või DBCCSHRINKFILE täitmise ajal tempdb on kasutusel".
  1. Määrata soovitud suurus esmane andmefail (tempdb.mdf), logifail (templog.ldf) ja täiendavaid faile, mis on lisatud tempdb. Veenduge, et ruum, mida kasutatakse failide on väiksem või võrdne suurus soovitud eesmärgi.
  2. SQL serveriga Query Analyzer abil ja seejärel käivitage kahaneb kindla andmebaasi failid järgmisi tehinguid-SQL käsud:
       use tempdb   go   dbcc shrinkfile (tempdev, 'target size in MB')   go   -- this command shrinks the primary data file   dbcc shrinkfile (templog, 'target size in MB')   go   -- this command shrinks the log file, examine the last paragraph.						
Ka DBCC SHRINKFILE eeliseks on, et see võib vähendada faili suurus suurus, mis on väiksem kui selle originaalsuuruses. Võite anda ka DBCC SHRINKFILE mis tahes andmeid või log faili. Ka DBCC SHRINKFILE piirang on, et te ei saa teha andmebaasi mudel andmebaasi suurusest väiksem.

SQL Server 7.0 kannete logisse kahaneb on edasilükkunud operatsiooni väljastage Logi kärpimine ja aidata kahandamise toiming andmebaasi varukoopia. Tempdb on chkpt sisse logida trunc valiku väärtuseks ON vaikimisi. Seega teil on välja andmebaasi Logi kärpimine.

Lisateabe saamiseks kahaneb andmebaasi Kannetelogi SQL Server 7.0 klõpsake Microsofti teabebaasi artikli kuvamiseks järgmist artikli:
256650 INF: Kuidas kahaneb SQL Server 7.0 tehingute register

Mõjusid kahandada ka DBCC SHRINKDATABASE'I või DBCCSHRINKFILE kuni tempdb on kasutuses

Kui kasutatakse tempdb , ja püüate kahaneb kaudu kahandada ka DBCC SHRINKDATABASE'I või ka DBCC SHRINKFILE käsud, võivad saada mitu järjepidevuse vead, mis sarnaneb järgmisega ja kahandamise toiming võib nurjuda:
  • Server: Msg 2501, tase 16, liikmesriigi 1, 1Could ei leia rida tabeli nimega '1525580473'. Kontrollige sysobjects.
  • Server: Msg 8909, tase 16 riigi 1 rida 0Table Corrupt: objekti ID 1, indeksi ID 0, lehekülg ID % S_PGID. Lehe päises PageId = % S_PGID.
Kuigi viga 2501 võib täpsustada tempdbesinev korruptsioon põhjustab selle vea kahaneb toimingu nurjumise. Teisest küljest tõrge 8909 võiks tähendada korruptsioonitempdb andmebaasis. Taaskäivitage SQL Server uuesti luua tempdb ja puhastada järjepidevuse vigu. Siiski tuleb silmas pidada, et seal võib olla muud põhjused füüsiliste korruptsiooni vead, nagu viga 8909 ning need hõlmavad sisendi/väljundi alamsüsteem probleeme.

VIITED

SQL serveri raamatuid Online; Teemad: "Ka DBCC SHRINKFILE"; "KAHANDADA KA DBCC SHRINKDATABASE'I"

Hoiatus. See artikkel on masintõlgitud.

Atribuudid

Artikli ID: 307487 – viimati läbi vaadatud: 10/10/2013 04:11:00 – redaktsioon: 2.0

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 7.0 Standard Edition, Microsoft SQL Server 2000 64-bit Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL 2005 Server Enterprise, Microsoft SQL 2005 Server Workgroup

  • kbsqlsetup kbhowtomaster kbmt KB307487 KbMtet
Tagasiside
/html>=">ml>rl = ""; document.write("