sqlschool.gr logo

articles

Articles of SQLschool.gr Team

How can I find discontinued/deprecated features?

Antonios Chatzipavlis
Tuesday 03 April 2018

Πρόσφατα έλαβα μια ερώτηση για το πως μπορούμε να βρούμε τα discontinued/deprecated features στο τρέχων SQL Server instance μας το οποίο θέλουμε να κάνουμε migrate σε επόμενη έκδοση.

Αρχικά θα πρέπει να επισημάνω ότι ο SQL Server είναι ίσως το μοναδικό προϊόν που έχει η Microsoft που με συνέπεια χρόνια τώρα αναφέρει σε κάθε έκδοση που βγαίνει τι δεν θα υποστηρίζεται στην επόμενη έκδοση και τι πρόκειται να μην υποστηρίζεται σε επόμενες εκδόσεις. Αυτό σημαίνει ότι μου δίνεται η δυνατότητα να προγραμματίσω με άνεση τις αλλαγές που χρειάζεται να γίνουν ώστε να έχω ομαλή μετάβαση σε επόμενη έκδοση.

Στην τρέχουσα έκδοση του SQL Server 2017 το link που περιέχει όλα αυτά είναι αυτό και μπορείτε να βρείτε και για τις προηγούμενες εκδόσεις.

Πέρα από το query που αναφέρεται στο παραπάνω άρθρο έχω και άλλες δυνατότητες που μου δίνουν περισσότερες λεπτομέρειες.

Using XE Events

Ο ποιο σύγχρονος τρόπος για κάνει κάποια κάτι τέτοιο είναι να χρησιμοποιήσει τα extended events στα οποίο θα πρέπει να κάνει χρήση των events sqlserver.deprecation_announcement , sqlserver.deprecation_final_support.

Αυτό μπορεί κάποιος να το κάνει είτε μέσα από το SSMS είτε με το παρακάτω script.

CREATE EVENT SESSION [Deprecated] ON SERVER 
ADD EVENT sqlserver.deprecation_announcement(
    ACTION(sqlserver.database_name,sqlserver.sql_text,sqlserver.tsql_stack)),
ADD EVENT sqlserver.deprecation_final_support(
    ACTION(sqlserver.database_name,sqlserver.sql_text,sqlserver.tsql_stack))
ADD TARGET package0.event_file(SET filename=N'Deprecated',max_file_size=(100))
WITH (STARTUP_STATE=ON)
GO

Using Profiler

Για όσους ακόμα δεν έχουν την δυνατότητα να χρησιμοποιήσουν τα XE Events υπάρχει ακόμα ο SQL Server Profiler που και αυτός περιέχει τα deprecation events όπως φαίνονται στην παρακάτω εικόνα.

image

Using SQL Trace

Για όσους δεν θέλουν να έχουν το όποιο overhead που έχει ο profiler μπουν να χρησιμοποιήσουν το SQL Trace για να κάνουν την καταγραφή αυτή. Το παρακάτω script κάνει αυτή την δουλειά απλά δείτε τα σχόλια για να κάνετε τις αλλαγές που απαιτούνται πριν την εκτέλεση του.

/****************************************************/
/* Created by: SQL Server 2017 Profiler          */
/* Date: 03/04/2018  11:42:36         */
/****************************************************/


-- Create a Queue
declare @rc int
declare @TraceID int
declare @maxfilesize bigint
set @maxfilesize = 5 

-- Please replace the text InsertFileNameHere, with an appropriate
-- filename prefixed by a path, e.g., c:\MyFolder\MyTrace. The .trc extension
-- will be appended to the filename automatically. If you are writing from
-- remote server to local drive, please use UNC path and make sure server has
-- write access to your network share

exec @rc = sp_trace_create @TraceID output, 0, N'InsertFileNameHere', @maxfilesize, NULL 
if (@rc != 0) goto error

-- Client side File and Table cannot be scripted

-- Set the events
declare @on bit
set @on = 1
exec sp_trace_setevent @TraceID, 125, 1, @on
exec sp_trace_setevent @TraceID, 125, 9, @on
exec sp_trace_setevent @TraceID, 125, 3, @on
exec sp_trace_setevent @TraceID, 125, 11, @on
exec sp_trace_setevent @TraceID, 125, 4, @on
exec sp_trace_setevent @TraceID, 125, 6, @on
exec sp_trace_setevent @TraceID, 125, 7, @on
exec sp_trace_setevent @TraceID, 125, 8, @on
exec sp_trace_setevent @TraceID, 125, 10, @on
exec sp_trace_setevent @TraceID, 125, 12, @on
exec sp_trace_setevent @TraceID, 125, 14, @on
exec sp_trace_setevent @TraceID, 125, 22, @on
exec sp_trace_setevent @TraceID, 125, 26, @on
exec sp_trace_setevent @TraceID, 125, 34, @on
exec sp_trace_setevent @TraceID, 125, 35, @on
exec sp_trace_setevent @TraceID, 125, 41, @on
exec sp_trace_setevent @TraceID, 125, 49, @on
exec sp_trace_setevent @TraceID, 125, 50, @on
exec sp_trace_setevent @TraceID, 125, 51, @on
exec sp_trace_setevent @TraceID, 125, 55, @on
exec sp_trace_setevent @TraceID, 125, 60, @on
exec sp_trace_setevent @TraceID, 125, 61, @on
exec sp_trace_setevent @TraceID, 125, 63, @on
exec sp_trace_setevent @TraceID, 125, 64, @on
exec sp_trace_setevent @TraceID, 126, 1, @on
exec sp_trace_setevent @TraceID, 126, 9, @on
exec sp_trace_setevent @TraceID, 126, 3, @on
exec sp_trace_setevent @TraceID, 126, 11, @on
exec sp_trace_setevent @TraceID, 126, 4, @on
exec sp_trace_setevent @TraceID, 126, 6, @on
exec sp_trace_setevent @TraceID, 126, 7, @on
exec sp_trace_setevent @TraceID, 126, 8, @on
exec sp_trace_setevent @TraceID, 126, 10, @on
exec sp_trace_setevent @TraceID, 126, 12, @on
exec sp_trace_setevent @TraceID, 126, 14, @on
exec sp_trace_setevent @TraceID, 126, 22, @on
exec sp_trace_setevent @TraceID, 126, 26, @on
exec sp_trace_setevent @TraceID, 126, 34, @on
exec sp_trace_setevent @TraceID, 126, 35, @on
exec sp_trace_setevent @TraceID, 126, 41, @on
exec sp_trace_setevent @TraceID, 126, 49, @on
exec sp_trace_setevent @TraceID, 126, 50, @on
exec sp_trace_setevent @TraceID, 126, 51, @on
exec sp_trace_setevent @TraceID, 126, 55, @on
exec sp_trace_setevent @TraceID, 126, 60, @on
exec sp_trace_setevent @TraceID, 126, 61, @on
exec sp_trace_setevent @TraceID, 126, 63, @on
exec sp_trace_setevent @TraceID, 126, 64, @on


-- Set the Filters
declare @intfilter int
declare @bigintfilter bigint

exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Server Profiler - d5e63f66-1920-401f-a9a5-a0c00ea0a9a5'
-- Set the trace status to start
exec sp_trace_setstatus @TraceID, 1

-- display trace id for future references
select TraceID=@TraceID
goto finish

error: 
select ErrorCode=@rc

finish: 
go

/* antonch */


Comments

10 Apr 2018 @ 9:32 AM

user-gravatar

Αλέξανδρος Παππάς

Το πρόβλημα είναι, ότι όταν δύο εκδόσεις απέχουν αρκετά, π.χ. SQL 2008 και SQL 2016, δεν περιέχονται όλα τα discontinued features του SQL 2016 στα deprecated features του SQL 2008. Πιστεύω, πως λείπει η εξής λειτουργικότητα:Παραγωγή trace από συνθήκες παραγωγής του SQL 2008 και διερεύνηση του trace κατά πόσο περιέχει discontinued features του SQL 2016.

10 Apr 2018 @ 12:32 PM

user-gravatar

Antonios Chatzipavlis

Εφόσον υπάρχει αυτή η διαφορά μπορείτε να χρησιμοποιήσετε τον Microsoft Data Migration Assistant v3.4 ο οποίος θα σας βρει αυτά που αναζητάτε.

Antonios Chatzipavlis

Antonios Chatzipavlis

Antonios Chatzipavlis is a highly experienced Data Solutions Consultant and Trainer. He has been working in the IT industry since 1988, holding various roles such as senior developer, IT Manager, Data & AI Solutions Architect and Consultant.

Since 1995, Antonios has focused on modern technologies and software development tools, primarily by Microsoft. He has specialized in Data & AI since 2000, with expertise in Microsoft Data Platform (SQL Server, Azure SQL Databases, Azure Synapse Analytics, Microsoft Fabric, Power BI, AI) and Databricks.

Antonios is also a Microsoft Certified Trainer (MCT) for over 25 years, has been recognized as a Microsoft Most Valuable Professional (MVP) in Data Platform since 2010 and he is in the Data Expert 40 Powerlist 2024 by Boussias. He is the co-founder and visionary behind XLYTiCA, a company dedicated to Data & AI solutions.

Episode

Task Flows in Microsoft Fabric

image

More Episodes...

Tip

What's New in SQL Server 2022 - Episodes

More Tips...

Become a member

If you want to receive updates from us become a member to our community.

Connect

Explore

Learn


sqlschool.gr © 2010-2025 All rights reserved

This site uses cookies for operational and analytics purposes only. By continuing to browse this site, you agree to their use.