T-Sql

Recursive CTE and Bill Of Materials problem

Sergio Govoni

CTE, dalla versione 2005 di SQL Server, è l’acronimo di Common Table Expression. Una Table Expression è una tabella derivata, completamente virtuale, originata da una query. Una tabella derivata può essere citata nella clausola FROM come una qualsiasi altra tabella fisica. La visibilità di una tabella derivata è limitata alla query esterna della CTE.

SQL Server, attraverso le CTE, fornisce la possibilità di utilizzare query ricorsive che permettono di interrogare e manipolare strutture ad albero, gerarchie ecc…

Three-Valued Logic: TRUE, FALSE and UNKNOWN

Sergio Govoni

Il capitolo uno del libro Inside Microsoft SQL Server 2008: T-SQL Querying di Itzik Ben-Gan è davvero ricco di contenuti e dopo aver parlato di uno degli aspetti singolari (che caratterizza il linguaggio SQL) nell’articolo Logical Query Processing, parleremo ora di un altro aspetto altrettanto singolare: I possibili valori che ci possiamo aspettare, in SQL, come risultato della valutazione logica di un’espressione.

In molti linguaggi di programmazione valutando un’espressione logica possiamo aspettarci vengano restituiti solo due possibili valori, l’espressione può essere vera (TRUE) oppure falsa (FALSE). In SQL, un’espressione logica può restituire oltre ai valori TRUE, FALSE anche il valore “sconosciutoUNKNOWN.

Logical Query Processing

Sergio Govoni

Prendendo l’ispirazione dal primo capitolo del libro Inside Microsoft SQL Server 2008: T-SQL Querying di Itzik Ben-Gan, in questo articolo parleremo delle fasi che entrano in gioco durante l’esecuzione logica di una query ed in particolare analizzeremo l’ordine con cui vengono eseguite.

In molti linguaggi di programmazione, il codice viene processato nell’ordine in cui è stato scritto. Potremmo pensare quindi, che in una query, la clausola SELECT sia la prima ad essere processata, ma in realtà non è così. In SQL, la prima clausola ad essere processata è la clausola FROM, mentre la SELECT verrà processata successivamente, moto più tardi.

DMV's for Query Tuning

Sergio Govoni

Le Dynamic Management Views and Functions recentemente introdotte in SQL Server 2005 forniscono informazioni sullo stato di salute di un’istanza SQL Server. Permettono di diagnosticare i problemi e di verificare se le performance possono essere migliorate, rappresentano uno strumento utilissimo per chi svolge le attività di database administrator e database developer.

Possiamo suddividere le DMV’s in due tipi:

  • Server-level

  • Database-level

Per interrogare una dynamic management view o una dynamic management function è necessario disporre del permesso di SELECT (sugli oggetti) in aggiunta ai permessi VIEW SERVER STATE e VIEW DATABASE STATE rispettivamente per consultare le DMV’s a livello server e a livello database.