SQL Server: miti da sfatare



Похожие документы
Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress

Introduzione all Architettura del DBMS

Dispensa di database Access

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

Istruzioni Archiviazione in Outlook 2007

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

2 Fortino Lugi. Figura Errore. Nel documento non esiste testo dello stile specificato Finestra attiva o nuovo documento

COME UTILIZZARE ARCHIVE-HOST

Amministrare MySQL con PhpMyAdmin

L architettura di un DBMS

I DATABASE Database relazionale

Dispense di Informatica per l ITG Valadier

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

TRUCCHI PER GIMP - Elemento a colori in foto bianco e nero

Corso sul linguaggio SQL

Pagina 1 di 10

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Capitolo 13. Interrogare una base di dati

Import Sisam. Manuale utente. Maggio Sistema di raccolta dei dati statistici in ambito Socio-Assistenziale Minori

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Software TotoQuote expert 2014

Il database management system Access

COME PARLARE DI DISLESSIA IN CLASSE.

12. Implementazione di un File System Struttura a livelli Allocazione contigua

GERARCHIE RICORSIVE - SQL SERVER 2008

Olga Scotti. Basi di Informatica. File e cartelle

Speedup. Si definisce anche lo Speedup relativo in cui, invece di usare T 1 si usa T p (1).

Gestione della memoria centrale

Costruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

Il linguaggio SQL: query innestate

Introduzione a Dev-C++

Università per Stranieri di Siena Livello A1

Cosa è un foglio elettronico

Lezione V. Aula Multimediale - sabato 29/03/2008

CONCETTO DI ANNIDAMENTO

FISICA. Le forze. Le forze. il testo: 2011/2012 La Semplificazione dei Testi Scolastici per gli Alunni Stranieri IPSIA A.

Istruzioni operative per la gestione delle Non Conformità e delle Azioni Correttive.

I/O su Socket TCP: read()

Data Warehousing (DW)

1.0 GUIDA PER L UTENTE

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

Aspetti applicativi e tecnologia

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

[1] Cross Site Scripting [2] Remote / Local File Inclusion [3] SQL Injection

Guida di Pro PC Secure

Figura 1 Le Icone dei file di Excel con e senza macro.

Concetti fondamentali dei database database Cos'è un database Principali database

STAMPA UNIONE DI WORD

ISTRUZIONI PER LA GESTIONE BUDGET

Lezione 9. Applicazioni tradizionali

MANUALE PARCELLA FACILE PLUS INDICE

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Dispensa DB Mercato del Lavoro

Davide Uzzo LA COSTANZA PREMIA

Esame Di Stato A.S. 2004/2005 Istituto Tecnico Commerciale Corso Sperimentale Progetto Mercurio Corso di Ordinamento - Programmatori

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Memoria secondaria. Struttura del disco. Scheduling del disco. Gestione dell unità a disco. Affidabilità dei dischi: RAID

FGCAEN Demo software per Mac OS X Leopard ) Lancio dell applicazione. 2) Apertura della comunicazione seriale

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

Interrogare il database: lavorare con le query

Sviluppare un DB step by step

Mac Application Manager 1.3 (SOLO PER TIGER)

Innanzitutto andiamo sul sito ed eseguiamo il download del programma cliccando su Download Dropbox.

4 Data Transformation Services

LABORATORIO-EXCEL N. 2-3 XLSTAT- Pro Versione 7 VARIABILI QUANTITATIVE

Università per Stranieri di Siena Livello A1

B+Trees. Introduzione

Introduzione a LyX. Creazione di un documento Struttura e stile Modelli di documento Automatismi Riferimenti...


Esercitazione di Laboratorio - Leve di genere TITOLO ESERCITAZIONE: VERIFICA DELLE LEGGI DELLE LEVE

schema riassuntivo del corso di access

La gestione delle emozioni: interventi educativi e didattici. Dott.ssa Monica Dacomo

WorkFLow (Gestione del flusso pratiche)

Introduzione ai Sistemi di Gestione di Basi di Dati XML

Office e Applicativi sw

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

INDIRIZZI IP ARCHITETTURA GENERALE DEGLI INDIRIZZI IP FORME DI INDIRIZZI IP CINQUE FORME DI INDIRIZZI IP

Elementi di Psicometria con Laboratorio di SPSS 1

COME SI ENTRA IN POSIZIONE

Backup e Restore di un database PostgreSQL Sandro Fioravanti INFN-LNF

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Codifica: dal diagramma a blocchi al linguaggio C++

risulta (x) = 1 se x < 0.

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?

Lezioni di Laboratorio sui Data Base

Guida all uso di Java Diagrammi ER

StoneFax User Guide. (Settembre 2011 ver.1.1) StoneFax-User-Guide-ita-1.1.docx

Dizionario Italiano/Lingua dei segni italiana

Note Operative per Accedere alla Posta Elettronica Certificata (PEC) Obbligo Iscrizioni 2011

Laboratorio di Basi di Dati e Web

Транскрипт:

SQL Server: miti da sfatare Andrea Benedetti @anbenedetti andrea.benedetti@microsoft.com

Sponsors

Organizers

Feedback form: http://speakerscore.com/z4fp

Speaker info

SELECT Scrivere la stessa SELECT in maniera diversa è lo stesso FYI... Petizione contro SELECT * Demo

Dove andiamo? Conosciamo così a fondo il db che utilizziamo? Non tutto è come sembra provare per credere In generale NON prendere mai per oro colato

Partiamo... Sondaggio: quanti DEV ci sono in sala?

User Function Usare le user function alla «Visual Basic» va bene Un db lavora in maniera diversa Una funzione scalare lavora riga per riga Un database no In generale se vedo > 10 UDF mi spavento Demo

Read Committed... Facile, no? Non potrò mai leggere due volte una riga Capiamo sempre cosa stiamo facendo Poniamoci sempre nel caso «peggiore» Il db fa quello che gli chiediamo noi Demo

Qualche Ragionamento a livello sistemistico

Transaction Log Avere più di un Tlog aumenta le performance SQL Server non utilizza più di un Tlog per volta I/O parallelo su Tlog non è possibile

DBCC CHECKDB È bloccante Non causa blocchi al database Utilizza database snapshot da SQL 2005 + È uno dei nostri migliori amici. Usatelo! (va usato ) Blocking-free da SQL Server 2000

Databse Backup Un backup può causare blocchi. I backup non acquisiscono lock Le performance db possono risentire di I/O contention

Tempdb Il tempdb deve avere un data file per core Esiste un solo tempdb può essere un collo di bottiglia Raccomandazione «vecchia», quando non c erano tanti core PAGEIOLATCH_XX I/O contention Attenzione: cost of file switching requires more IAM pages increases the manageability overhead Demo

Instant File Inizialization Solo su Enterprise. Sempre disponibile Funziona solo su file dati Il Tlog è sempre in zero-out per integrità 5 GB http://community.ugiss.org/blogs/abenedetti/archive/2012/02/22/sql-server-instant-initialization.aspx

Qualche Ragionamento a livello di sviluppo

Drop Il DROP esplicito o implicito di una tabella temporanea non fa differenza Nel tuning sono molti i dettagli che possono portare a fare la differenza Se in una SP utilizzo una #temp ne chiamo la DROP o no?

Tipi di dato Nvarchar(4000) o Nvarchar(35) è uguale

Dati e cluster I dati sono memorizzati separatamente dal cluster. I dati sono nell indice cluster In altri db ok, in SQL Server no Demo

Chiave Cluster Gli indici noncluster non hanno la chiave cluster. Il livello foglia NC: NON ha un puntamento alla riga Ha la chiave cluster Demo

Fillfactor Il FILLFACTOR viene «utilizzato» per le normali operazioni DML Viene applicato solo durante: Build indice Rebuild indice

Rebuild Indici Cluster Ricostruire un indice cluster ricostruisce anche tutti i noncluster. Gli indici noncluster hanno un puntamento Il puntamento non cambia alla rebuild Rebuild cluster = nessun effetto su NC Demo

Count (*) SELECT COUNT(*) effettua sempre un table scan. Query processor sceglie la strada più corta Scan dell indice nonclustered più piccolo Purchè sia non filtrato Demo

Variabili Tabella Sono gestite solo in memoria. Tabelle temporanee e variabili tabella sono sempre create sul tempdb e non in memoria Occhio: Optimizer assume che ci sia una sola riga Non hanno statistiche Non sono indicizzabili Solo indici cluster e vincoli UNIQUE Non sono usabili parallelamente Demo

GUID È una buona cluster key. GUIDs è randomico frammentazione NEWSEQUENTIALID non è randomico 16 bytes La scelta migliore? INT, BIGINT 4, 8 bytes Append-only insertion pattern

Ordinamento (1) Le tabelle hanno un ordine garantito. Per definizione, le tabelle NON hanno un ordine Nemmeno in presenza di indici cluster Ci sono diversi operatori (execution plan) che possono influenzare l ordinamento Stream aggregates, partitions, parallelism, Usiamo ORDER BY Demo

Ordinamento (2) Un ORDER BY non impatta le performance. ORDER BY consuma preziose risorse server Viene utilizzato processor time Se serve, viene utilizzato TEMPDB

Nolock NOLOCK funziona anche su istruzioni DML. Non è la panacea di tutti i mali Funziona solo con SELECT Una scrittura richiede, quanto meno, un lock Sch-S (Schema Stability) Quindi SQL Server lo ignora Demo

In sintesi Molto si legge, molto è sbagliato Occhio a prendere per «oro colato» Provare per credere funziona sempre Mettersi nella condizione «peggiore» Test, test, test

Q&A Questions?

Feedback form: http://speakerscore.com/z4fp THANKS!