Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Ottimizzare database sql server
lunedì 20 novembre 2006 - 11.27
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
fabio barbieri
Profilo
| Newbie
15
messaggi | Data Invio:
lun 20 nov 2006 - 11:27
ciao a tutti,
dovrei ottimizzare un database sql server ....
il mio problema è che occupa troppo spazio sono già a mezzo giga e sono solo in fase di start up .
il databse l'ho esportato da oracle e quindi i tipi di dati sono un pochino sbagliati ...
secondo voi se cambio varchar in nvarchar risparmio qualche cosa?
esiste qualche software che mi permette di capire quali sono le tabelle e i campi che non servono?
o cosa si fa in questo caso?
tks
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 20 nov 2006 - 11:57
>ciao a tutti,
Ciao!
>dovrei ottimizzare un database sql server ....
>il mio problema è che occupa troppo spazio sono già a mezzo giga
>e sono solo in fase di start up .
>
>il databse l'ho esportato da oracle e quindi i tipi di dati sono
>un pochino sbagliati ...
>
>secondo voi se cambio varchar in nvarchar risparmio qualche cosa?
>
>esiste qualche software che mi permette di capire quali sono
>le tabelle e i campi che non servono?
>
>o cosa si fa in questo caso?
Sinceramente così è molto dura aiutarti..
Intanto.. SQL Server? 2000? 2005?
poi, per i tipi di dato.. controlla le lunghezze dei campi.. magari esportando, ti trovi dei varchar enormi per campi che tengono effettivamente meno..
cmq ci sono tante altre cose.. bisognerebbe avere il database sottomano..
Indici, Normalizzazione della struttura.. ecc.. ecc..
così purtroppo non posso dirti più di tanto..
>
>tks
Alx81 =)
http://blogs.dotnethell.it/suxstellino
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 20 nov 2006 - 12:05
>secondo voi se cambio varchar in nvarchar risparmio qualche cosa?
Ciao Fabio,
i datatype nvarchar, nchar, ntext sono tutti unicode, ovvero utilizzano 2 bytes per rappresentare ogni carattere. Questo ti permette di memorizzare stringhe in qualsiasi lingua (supporta oltre 65.000 caratteri differenti) ma ovviamente a parità di dimensioni potrai memorizzare la metà dei dati.
Quindi, se cambi da varchar a nvarchar duplicherai la dimensione delle colonne invece che dimezzarla
>esiste qualche software che mi permette di capire quali sono
>le tabelle e i campi che non servono?
L'unico che può rispondere a questa domanda SEI TU!
Un conto è ottimizzare la definizione degli indici, un conto è "sfrondare" quello che non serve.
>o cosa si fa in questo caso?
Ci si arma di santa pazienza e si inzia ad analizzare nel dettaglio la struttura del database, degli oggetti che lo compongono, della sicurezza, ecc.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
fabio barbieri
Profilo
| Newbie
15
messaggi | Data Invio:
lun 20 nov 2006 - 12:26
sql server 2005
la differenza tra varchar e nvarchar è chiarissima GRAZIE
ma invece tra char e varchar ?
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 20 nov 2006 - 14:46
>sql server 2005
>
>
>la differenza tra varchar e nvarchar è chiarissima GRAZIE
>
>ma invece tra char e varchar ?
Char è un tipo di dato a lunghezza fissa.. Quindi l'occupazione di ogni campo definito char corrisponde alla dimensione assegnata.
Ad esempio, un campo di tipo char(30) occuperà 30 caratteri (30 bytes). Se ne riempi meno, i caratteri non "utilizzati" diventano spazi, ma l'occupazione è sempre 30 bytes. Si usa quando non hai informazioni molto variabili e/o quando sai che la lunghezza del campo sarà sempre quella.
Varchar è variabile, quindi se definisci un campo varchar(30) e non lo riempi tutto, quel campo ti occupa la lunghezza effettivamente "riempita". Un varchar(30) valorizzato alla stringa 'ciao' occuperà effettivamente 4bytes. Si usa quando l'informazione da immagazzinare in quel campo è molto variabile (un indirizzo, un nome, un cognome, ecc..)
a parità di lunghezza char potrebbe occupare di più, inoltre il varchar è più performante in alcuni casi:
- spazio in memoria (riduce le operazioni di IO in lettura dalla memoria aumentando le performance di sql server)
- gli algoritmi di sort sono più efficienti (il char deve essere ordinato per tutta la sua lunghezza)
Alx81 =)
http://blogs.dotnethell.it/suxstellino
Torna su
Stanze Forum
Elenco Threads
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 !