Home > Articoli > Deprecated Features on SQL Server

Deprecated Features on SQL Server

In informatica, il termine deprecato (deprecated) è usato per indicare che una funzionalità o una caratteristica presente nella versione del software in uso sarà eliminata (non supportata) nelle versioni successive; se ne sconsiglia quindi l’utilizzo in nuovi progetti e si raccomanda di adeguare il software esistente che faccia uso di chiamate a funzionalità deprecate.

Anche sulla piattaforma SQL Server, ad ogni rilascio di versione, alcune funzionalità vengono dichiarate deprecate, Microsoft ne sconsiglia quindi l’utilizzo per i nuovi sviluppi.

L’elenco delle funzionalità e delle caratteristiche deprecate in SQL Server 2008 R2 è disponibile a questo link:

http://technet.microsoft.com/it-it/library/ms143729.aspx 

Com’è possibile individuare le funzionalità deprecate e che al tempo stesso vengono utilizzate dalle applicazioni database che accedono ad una determinata istanza SQL Server ?

Possiamo rispondere a questa domanda utilizzando la DMV sys.dm_os_performance_counters che, come citato nei BOL, restituisce una riga per ogni contatore delle prestazioni gestito dall’istanza SQL Server. Filtrando le righe restituite dalla DMV sys.dm_os_performance_counters per la colonna object_name e chiedendo che nel nome del contatore sia contenuta la stringa ":Deprecated Features", otteniamo l’elenco delle funzionalità deprecate nella versione di SQL Server in uso.

Sappiamo che la chiamata alla funzione RAISERROR, riportata nel seguente frammento di codice T-SQL è deprecata:

RAISERROR 54321 N’This is an old-style of RAISERROR.’;
go

Eseguiamo ora il codice T-SQL riportato di seguito:

select
  [object_name]   ,[instance_name]   ,[cntr_value] from
  sys.dm_os_performance_counters
where
  ([object_name] like N’%:Deprecated Features%’)
  and instance_name = N’OldStyle RaisError’;
go

RAISERROR 54321 N’This is an old-style of RAISERROR.’;
go

select
  [object_name]   ,[instance_name]   ,[cntr_value] from
  sys.dm_os_performance_counters
where
  ([object_name] like N’%:Deprecated Features%’)
  and instance_name = N’OldStyle RaisError’;

L’output è illustrato nelle figure 1 e 2:

Figura 1 – Scheda risultati, contatore SQLServer:Deprecated Features Oldstyle RAISERROR

Figura 2 – Scheda messaggi con visualizzazione dell’errore ID=54321

La DMV sys.dm_os_performance_counters è stata interrogata prima e dopo la chiamata deprecata alla funzione RAISERROR, nella prima query il valore del contatore SQLServer:Deprecated Features Oldstyle RAISERROR è ZERO mentre dopo l’utilizzo (deprecato) di RAISERROR, il valore del contatore è uguale a UNO.

La query riportata nel seguente frammento di codice T-SQL esegue, sull’istanza SQL Server 2008 correntemente connessa, l’estrazione delle funzionalità deprecate con almeno un utilizzo (da riavvio del servizio SQL Server).

select
  [object_name]   ,[instance_name]   ,[cntr_value] from
  sys.dm_os_performance_counters
where
  ([object_name] like N’%:Deprecated Features%’)
  and ([cntr_value] > 0);

L’output è illustrato in Figura 3:

Figura 3 – Funzionalità deprecate, ma utilizzate da un’istanza SQL Server

 

Chi è Sergio Govoni

Sergio Govoni è laureato in Scienze e Tecnologie Informatiche. Da oltre 16 anni lavora presso una software house che produce un noto sistema ERP, distribuito a livello nazionale ed internazionale, multi azienda client/server su piattaforma Win32. Attualmente si occupa di progettazione e analisi funzionale, coordina un team di sviluppo ed è responsabile tecnico di prodotto. Lavora con SQL Server dalla versione 7.0 e si è occupato d'implementazione e manutenzione di database relazionali in ambito gestionale, ottimizzazione delle prestazioni e problem solving. Nello staff di UGISS si dedica alla formazione e alla divulgazione in ambito SQL Server e tecnologie a esso collegate, scrivendo articoli e partecipando come speaker ai workshop e alle iniziative del primo e più importante User Group Italiano sulla tecnologia SQL Server. Ha conseguito la certificazione MCP, MCTS SQL Server. Per il suo contributo nelle comunità tecniche e per la condivisione della propria esperienza con altri, dal 2010 riceve il riconoscimento SQL Server MVP (Microsoft Most Valuable Professional). Nel corso dell'anno 2011 ha contribuito alla scrittura del libro SQL Server MVP Deep Dives Volume 2 (http://www.manning.com/delaney/).

Leggi Anche

Unit testing: Come scrivere la tua prima unit test!

Nell’articolo precedente, il secondo di questa serie, abbiamo descritto come installare il framework tSQLt, il …