Newsgroup: it.comp.software.database
Titolo: Info SQL Srver

Volevo le vostre implessioni/consigli su mondo degli SQL Server... quale mi
consigliate? Perche? Che pregi e che difetti possono avere?
Grazie
Paolo

 consigliate? Perche? Che pregi e che difetti possono avere?
Pregi:
- buon controllo della multiutenza (almeno rispetto a cose come Acces, Dbf,
Paradox, Btrieve ecc.)
- possibilità di inserire vincoli referenziali nel DB
- disponibilità di viste, stored procedure, trigger
- controllo delle autorizzazioni di accesso degli utenti
- in genere migliori prestazioni, almeno quando si devono gestire grandi
quantità di dati
- affidabilità
Difetti
- amministrazione complessa
- i server SQL commerciali costano svariate lire
- risorse Hardware maggiori rispetto ad un sistema su file
Personalmente credo che i pregi superino di gran lunga i difetti. Io uso SQL
server, non tanto per scelta, ma perché dove lavoro lo hanno imposto. Devo
dire che rispetto alla media dei prodotti Microsoft è un po' meglio. Ho
avuto qualche esperienza su Oracle, che mi sembra un prodotto molto più
sofisticato, ma decisamente ostico.

 Che pregi e che difetti possono avere?
Pregi:
 possibilita' di spostare parte della "logica" dentro al
 database, automazione di procedure ripetitive, maggiore
 indipendenza del software, funzioni di replicazione dei
 dati tra diversi server, backup "a caldo".
Difetti:
 il costo (per le versioni commerciali), maggiore
 difficolta' nella manutenzione/configurazione/programmazione,
 richiedono un server (macchina) piu' "pompata".
Davide

 cosa farci.
Per una rete con 30/40 PC che utilizzano, ad esempio, un Archivio comune
(come può essere l'Anagrafica Clienti) qual'è il server che gestisce meglio
gli accessi, e la scrittura/aggiornamento dei records?
Grazie
Ciao

 gli accessi, e la scrittura/aggiornamento dei records?
Ogni database lo gestisce, e dato che 30/40 clients non sono tanti,
tutti sono sufficientemente "forniti". Per il resto, il termine
"gestisce meglio" non significa nulla. Dipende da come hai implementato
la parte client dell'applicazione.
Mi spiego meglio: 
Oracle utilizza automaticamente le transazioni multiistruzione, se
fai una select seguita da una update, devi dare una commit al termine
per avere i dati aggiornati, mentre Microsoft SQL Server fa' di ogni
operazione una transazione unica, il che e' seccante quando vuoi fare
piu' operazioni consecutive e raggrupparle in un'unica transazione.
Oracle utilizza le select non bloccanti, mentre Microsoft utilizza
un Read-Lock quando fai una select, il che significa che se stai
LEGGENDO i dati con Oracle non ci sono problemi, mentre con Microsoft
ogni altro client che tenta di accedere in scrittura riceve un errore
di "tabella bloccata" (quindi devi gestirlo diversamente).
Oracle utilizza un lock a livello di singolo record, mentre Microsoft
lo gestisce a livello di "pagina", dove ogni pagina puo' contenere uno
o piu' record a seconda della dimensione dei campi, quindi con 
Microsoft potresti bloccare piu' record di quelli che effettivamente
ti servono.
Per il resto ci sono delle (ovvie) differenze tra l'SQL di uno
e dell'altro, ma devi vedere tu cosa preferisci. Come costi credo
che attualmente Oracle costi di meno di SQL Server (ma non sono sicuro
della cosa). In ogni caso puoi ottenere una versione "developer" di
Oracle per provare quello che vuoi senza doverla pagare, mentre con
Microsoft te la scordi (si' Ok, c'e' MSDA che pero' non e' la stessa
cosa).
Tieni anche conto che Oracle e gli altri sono multipiattaforma (funzionano
su Windows, Unix, Linux etc), mentre SQL Server e' solo Windows.
Sorry, ma non c'e' un prodotto "migliore in assoluto", devi vedere
le tue singole esigenze.
(P.S. dopo 2 anni passati su SQL Server e 3 anni passati su Oracle
io preferisco Oracle ma e' la mia opinione e non fa' testo)
Davide

Grazie per i consigli che mi stai dando.. ma visto che ho intenzione di
cambiare "gestione" nell'azienda in cui lavoro (passare da Archivi DBF e MDB
a una gestione con un server SQL), non sono mai troppi... Cosa ne pensi di
Interbase o MySql? Come mi consigli di affrontare la transizione?
Grazie
Paolo

 di "tabella bloccata" (quindi devi gestirlo diversamente).
Basta impostare il parametro ISOLATION LEVEL nel modo desiderato e il
problema è risolto, per default è su read committed e si ottiene in effetti
il risultato che dici.

 Come mi consigli di affrontare la transizione?
Ripensa totalmente il problema. Se usi un server allora *usa il server*,
cioe' vai di Stored Procedure e Trigger, sposta il piu' possibile della
logica di funzionamento "dentro" al server stesso.
Davide