Manutenzione DB-Sql Server

giovedì 12 gennaio 2012 - 12.03
Tag Elenco Tags  SQL Server 2000

vittosss Profilo | Junior Member

Buongiorno a tutti,
volevo illustrarvi il mio caso e chiedervi consiglio.
premetto che so di essere lacunoso e devo studiare ma vorrei risolvere il momento contingente.
parliamo di una installazione di sql server 2000 sp4 sulla quale ho 2 db che definirei grossi. i backup cubano circa 50gb per singolo db. francamente troppo ed ho la percezione che siano gonfiati. ho fatto quindi una select al fine di ottenere la dimensione di ciascuna tabella ed operare una eventuale archiviazione di dati.
quindi, primo caso e prima domanda: c'è modo di verificare la correttezza di un db, che non sia "gonfio", che lavori bene? attualmente eseguo una volta al giorno backup ( la notte ) e a mezzogiorno un trn log. la notte eseguo anche una truncate.
seconda questione anomala. il tempdb cresce a dismisura e non si sgonfia. la notte dunque sono costratto ad operare un riavvio di sql server per riportarlo ai canoni consueti.

cosa mi consigliereste di fare?

ciao e grazie a tutti
V.

lbenaglia Profilo | Guru

>parliamo di una installazione di sql server 2000 sp4 sulla quale
>ho 2 db che definirei grossi. i backup cubano circa 50gb per
>singolo db. francamente troppo ed ho la percezione che siano
>gonfiati.

Ciao,

Per verificare lo spazio utilizzato da un db (e dai suoi oggetti) e quello allocato ma non in uso, puoi far ricorso alla stored procedure di sistema sp_spaceused:
http://technet.microsoft.com/it-it/library/ms188776.aspx

ho fatto quindi una select al fine di ottenere la dimensione
>di ciascuna tabella ed operare una eventuale archiviazione di
>dati.
Ottieni le righe, non la dimensione (espressa in bytes).

>quindi, primo caso e prima domanda: c'è modo di verificare la
>correttezza di un db, che non sia "gonfio", che lavori bene?
Le dimensioni di un db hanno poco a che vedere con il fatto che "lavori bene".
Un db di 100 MB non ottimizzato a livello di definizione dei suoi oggetti, del codice T-SQL, della definizione degli indici/statistiche può offrire prestazioni molto inferiori rispetto ad uno di 100 GB altamente ottimizzato.

>attualmente eseguo una volta al giorno backup ( la notte ) e
>a mezzogiorno un trn log. la notte eseguo anche una truncate.
Un truncate di cosa? Le tabelle vengono poi ripopolate con dati freschi? Gli indici sono ricostruiti al termine del caricamento degli stessi?

>seconda questione anomala. il tempdb cresce a dismisura e non
>si sgonfia.
Un utilizzo anomalo del tempdb mi fa pensare a query poco ottimizzate e/o ad indici molto frammentati che non vengono scelti dal query optimizer per la definizione dei query plans, quindi verranno eseguiti table/index scan massivi che in fase di ordinamento/join richiedono la creazione di tabelle temporanee.

Il tempdb viene ricreato ad ogni riavvio del servizio.

>la notte dunque sono costratto ad operare un riavvio
>di sql server per riportarlo ai canoni consueti.
Cosa itendi con "canoni consueti"?
SQL Server è un servizio "server" e come tale deve essere sempre disponibile senza richiedere alcun riavvio notturno.
Se questo riavvio è richiesto (ma devi spiegarci il motivo), significa che sussistono dei grossi problemi

>ciao e grazie a tutti
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5