Archivi categoria: Breaking News

SQL Server Cumulative Updates (Gennaio 2017)

Facebooktwittergoogle_plusredditlinkedin

Nel mese di Gennaio sono stati rilasciati i seguenti Cumulative Update per SQL Server:

Cumulative Update 3 per SQL Server 2017 RTM

Cumulative Update 7 per SQL Server 2016 SP1

Cumulative Update 10 per SQL Server 2014 SP2

SQL Operations Studio: January release

Facebooktwittergoogle_plusredditlinkedin

Lo scorso 17 Gennaio è stata rilasciata la versione 0.25.4 di SQL Operations Studio.

Come già detto precedentemente (qui e qui) SQL Operations Studio è il nuovo tool di casa Microsoft che consente l’accesso a SQL Server, Azure SQL DB e SQL DW da tutte le principali piattaforme (Windows, macOS e Linux).

La January release apporta diverse migliorie e introduce qualche nuova funzionalità, come ad esempio:

  • HotExit: ovvero la feature grazie a cui è possibile ritrovare nell’editor eventuali script non salvati.

hotexit

  • La possibilità di vedere le connessioni salvate direttamente nel Connection Dialog.

saved-connections

  • La possibilità di avere i tab colorati con lo stesso colore impostato per un particolare Server Group.

sql-editor-tab-color

Come sempre, per la lista completa ed i dettagli di tutti gli aggiornamenti rimandiamo alle release notes.

Per chi invece volesse testare le nuove funzionalità o semplicemente iniziare ad esplorare il tool, questo è il link dove potete scaricarlo!

Buon divertimento!

SQL Saturday Pordenone 2018 – Agenda online!

Facebooktwittergoogle_plusredditlinkedin

L’agenda del SQL Saturday Pordenone, edizione 2018, è online!

L’evento si terrà sabato 17 Febbraio 2018 presso il Consorzio Universitario di Pordenone, via Prasecco, 3/a.

Anche quest’anno avremo 4 track che erogheranno sessioni in parallelo per un totale di 24 ore di formazione gratuita su SQL Server, Data Science, Analytics e Cloud Application! Potrete quindi seguire le sessioni che trattano funzionalità e tecnologie che utilizzate ogni giorno piuttosto che quelle che desiderate approfondire scegliendole tra:

  • Advanced Analysis Techniques
  • Analytics and Visualization
  • Cloud
  • Data Science
  • Database Administration
  • Development

Date un’occhiata allo schedule, lo troverete molto interessante!

Per la registrazione, puntate il vostro browser qui, l’hashtag twitter ufficiale è #sqlsat707.

Fin da ora, ringraziamo gli Sponsor, il loro contributo rende possibile l’organizzazione di eventi come questo: Grazie!

Non mancate! Ci vediamo a Pordenone!

SQL Saturday Parma 2017 – Sessioni registrate

Facebooktwittergoogle_plusredditlinkedin

Le sessioni tenute al SQL Saturday Parma 2017 sono state registrate!

I video sono disponibili sul canale UGISS di Vimeo nella raccolta SQL Saturday Parma 2017, di seguito i link dei singoli video suddividi per track, per un totale di 12 ore di formazione gratuita distribuite sull’intera Data Platform di Microsoft!

DBA

DEV

Data Science-Analytics

Cloud

 

Il materiale (slide e script demo) utilizzato durante le sessioni è disponibile per il download accedendo allo schedule dell’evento.

Il post produzione dei video è stato curato con professionalità da Davide Zampatti e Riccardo Molti di After Spell Studios.

L’occasione si presta per augurare a tutti Buone Feste!

PASSGIVC – Introduzione a SQL Server su Linux

Facebooktwittergoogle_plusredditlinkedin

Il prossimo webinar del PASS Italian Virtual Chapter è programmato per mercoledì 20 dicembre 2017 alle ore 18:00.

Danilo Dominici (@danilo_dominici) ci spiegherà come utilizzare SQL Server su Linux nella sessione dal titolo “Introduzione a SQL Server su Linux”.

Questo è l’abstract del webinar:

Da sempre i DBA SQL Server hanno utilizzato Windows come sistema operativo ed interfaccia utente. Con il rilascio di SQL Server su Linux lo scenario cambia, ancora una volta, per consentire una ancor maggiore diffusione di SQL Server anche laddove finora non era stato preso in considerazione. In questa sessione vediamo le caratteristiche di SQL Server su Linux e quali sono le modalità per interagire con esso da Linux e da Windows.

Per effettuare la registrazione, puntate il vostro browser qui.

SQL Server Management Studio 17.4

Facebooktwittergoogle_plusredditlinkedin

E’ stata rilasciata da poco la nuova versione di SQL Server Management Studio (17.4).

Anche in questa release ci sono alcune novità come, ad esempio, il SQL Vulnerability Assestment service: un tool, in grado di analizzare i nostri database ed indicarci potenziali vulnerabilità ed anche discostamenti delle più comuni best practices (errori di configurazione, analisi delle permission, ma anche il potenziale rischio di esposizione di eventuali dati sensibili.. che in previsione dell’imminente entrata in vigore di norme come il GDPR non sono certo cosa da poco! 😉 ).

Inoltre sono state apportate varie correzioni e migliorie in ambiti come SMO, Always On Dashboard, Show Plan e Query Store.

Anche alcune feature introdotte nella release precedente (XE Profiler e Import Flat File Wizard) sono state riviste ed ulteriormente migliorate.

Novità anche per la Command line con l’aggiunta di una nuova opzione (“-G”) che consente a SSMS di connettersi automaticamente a  server e/o database tramite l’autenticazione di Active Directory (o ‘Integrated’ o ‘Password’).

Come sempre potrete ottenere maggiori informazioni sulla pagina ufficiale della documentazione online e attaverso il Change Log della nuova versione.

Questi invece i link per il download:

SQL Saturday Catania 2018 – Save the date!

Facebooktwittergoogle_plusredditlinkedin

Come preannunciato in questo articolo, l’anno prossimo, l’evento SQL Saturday farà tappa a Catania, sarà l’edizione #728. Ospitato nella sede di Free Mind Foundry, sarà gratuito (con registrazione obbligatoria) e si terrà il 19 Maggio 2018.

L’agenda verrà finalizzata dopo la chiusura della call for speakers, nel frattempo, potete consultare le proposte inviate qui.. se volete inviare le vostre proposte accedete all’area speaker con questo link.

Per effettuare la registrazione all’evento, puntate il vostro browser qui.

Usate l’hashtag twitter #sqlsat728 per farci sapere che parteciperete all’evento, rimanete sintonizzati, seguiranno ulteriori dettagli!

Non mancate, in Maggio la Sicilia è bellissima!!

Conversioni implicite: La plan cache ci svela quante sono e dove avvengono!

Facebooktwittergoogle_plusredditlinkedin

Nell’articolo Conversioni implicite: cosa sono e che impatto hanno sulle nostre query, Luca Bruni (@mrg3d) ci ha parlato delle conversioni implicite che avvengono, a nostra insaputa, all’interno dell’Engine di SQL Server. Tali conversioni, possono costringere il Query Optimizer ad accedere alle tabelle con operazioni di scansione (Table Scan, Index Scan) in alternativa alle più efficienti operazioni di Seek (Index Seek), e quando una parte significativa del carico di lavoro è interessata da conversioni implicite, le performance degradano visibilmente!

Una conversione implicita tra due tipi di dato differenti avviene sempre dal tipo di dato meno preciso al tipo di dato più preciso. Per ovvie ragioni, SQL Server non può perdere precisione nei dati a causa di una conversione implicita, parlando quindi di tipi di dato testo, una conversione implicita potrà avvenire, ad esempio, dal tipo VARCHAR (meno preciso) al tipo NVARCHAR (più preciso), mai nella direzione opposta.

Probabilmente vi starete chiedendo se il vostro carico di lavoro è affetto da conversioni implicite e in che percentuale.

Le conversioni implicite, all’interno del piano di esecuzione, vengono segnalate con un warning. Il Query Optimizer può segnalare i seguenti tipi di warning:

  • No statistics (ColumnsWithNoStatistics)
  • No join predicate (NoJoinPredicate)
  • Implicit conversions (PlanAffectingConvert)
  • Sort on tempdb (SpillToTempDb)
  • No matched indexes (UnmatchedIndexes)
  • Wait (WaitWarningType)

..tra cui troviamo l’Implicit Conversions Warning (PlanAffectingConvert) di cui parleremo in questo articolo.

Il warning PlanAffectingConvert viene segnalato proprio in presenza di conversioni implicite, quando viene utilizzata la funzione CONVERT_IMPLICIT. È quindi possibile fare indagini sulla presenza di conversioni implicite nel carico di lavoro analizzando la plan cache, ovvero l’area di memoria utilizzata da SQL Server per memorizzare i piani di esecuzione delle query.

Utilizzando la metodologia “top-down” per analizzare il problema, il primo dato che vorremmo avere è la percentuale dei piani di esecuzione in cache affetti da conversioni implicite. Per ottenerlo dovremo contare i piani di esecuzione in cache, e di questi, quelli affetti da conversioni implicite… la seguente CTE estrae le informazioni che cerchiamo: il numero dei piani di esecuzione in cache, il numero dei piani di esecuzione in cui viene utilizzata la funzione CONVERT_IMPLICIT ed il calcolo della percentuale.

WITH XMLNAMESPACES
(
 DEFAULT 'http://schemas.microsoft.com/sqlserver/2004/07/showplan'
),
Cached_Plans AS
(
 SELECT
 COUNT(cp.plan_handle) AS Total_Plan_Cached
 FROM
 sys.dm_exec_cached_plans AS cp
),
Cached_Plans_with_Convert AS
(
 SELECT
 COUNT(cp.plan_handle) AS Total_Plan_Cached_with_Convert
 FROM
 sys.dm_exec_cached_plans AS cp
 CROSS APPLY
 sys.dm_exec_query_plan(cp.plan_handle) AS qp
 CROSS APPLY
 sys.dm_exec_sql_text(cp.plan_handle) AS qt
 WHERE
 (qp.query_plan.exist('//Warnings') = 1)
 AND CAST(qp.query_plan.query('//Warnings') AS VARCHAR(MAX)) LIKE '%CONVERT_IMPLICIT%'
)
SELECT
 Total_Plan_Cached
 ,Total_Plan_Cached_with_Convert = (SELECT Total_Plan_Cached_with_Convert FROM Cached_Plans_with_Convert)
 ,CAST(CAST((SELECT Total_Plan_Cached_with_Convert FROM Cached_Plans_with_Convert) AS DECIMAL(10,3)) / 
 CAST(Total_Plan_Cached AS DECIMAL(10,3)) AS DECIMAL(6,3)) * 100 [% Plan_Cached_with_Convert]
FROM
 Cached_Plans;

L’output di esempio è illustrato nelle figura seguente, dove circa il 4% del carico di lavoro è affetto da conversioni implicite.

Qualora venisse rilevato un numero considerevole di piani di esecuzione affetti da conversioni implicite, la seguente CTE ci potrà aiutare nell’identificazione delle query specifiche in cui avvengono le conversioni implicite, tra le colonne estratte vi è il testo della query, il piano di esecuzione completo e la porzione relativa ai warning di tipo PlanAffectingConvert in cui è stata utilizzata la funzione CONVERT_IMPLICIT.

WITH XMLNAMESPACES
(
 DEFAULT 'http://schemas.microsoft.com/sqlserver/2004/07/showplan'
),
PlanAffectingConvert AS
(
 SELECT
 query_text = qt.text
 ,cp.objtype
 ,cp.refcounts
 ,cp.usecounts
 ,Plan_Warnings = qp.query_plan.query('//Warnings')
 ,qp.query_plan
 FROM
 sys.dm_exec_cached_plans AS cp
 CROSS APPLY
 sys.dm_exec_query_plan(cp.plan_handle) AS qp
 CROSS APPLY
 sys.dm_exec_sql_text(cp.plan_handle) AS qt
 WHERE
 (qp.query_plan.exist('//Warnings') = 1)
)
SELECT
 *
FROM
 PlanAffectingConvert
WHERE
 CAST(Plan_Warnings AS VARCHAR(MAX)) LIKE '%CONVERT_IMPLICIT%';

Concludendo, se avete il dubbio che il vostro carico di lavoro sia affetto da conversioni implicite, un buon punto di partenza è l’utilizzo delle query descritte in questo articolo… se pensate di non avere conversioni implicite nelle vostre query, fate lo stesso un controllo… non costa nulla!

Buon divertimento!