go backsqlschool blogs list

Database Scoped Configuration in SQL Server 2016

by Fivi Panopoulou - Sotiris Karras

Στον SQL Server 2016 παρουσιάστηκε η δυνατότητα να παραμετροποιήσουμε το περιβάλλον εκτέλεσης ενός query σε επίπεδο database. Μπορούμε λοιπόν πλέον να καθορίσουμε την τιμή των εξής παραμέτρων για μια συγκεκριμένη βάση στον server μας:

  • MAXDOP: Θέτουμε την επιθυμητή τιμή του MAXDOP για την βάση μας
  • LEGACY CARDINALITY ESTIMATION: Καθορίζουμε αν θέλουμε να χρησιμοποιηθεί ο καινούριος cardinality estimator ή όχι, άσχετα με το compatibility level που έχουμε επιλέξει για την συγκεκριμένη βάση
  • PARAMETER SNIFFING: Απενεργοποιώντας την επιλογή αυτή, τα queries μας προς την βάση αυτή θα συμπεριφέρονται σαν να είχαμε ορίσει το OPTIMIZE FOR UNKNOWΝ query hint.
  • QUERY OPTIMIZER HOTFIXES: Ενεργοποιώντας την παράμετρο αυτή επιτρέπουμε να χρησιμοποιούνται στο επίπεδο της συγκεκριμένης βάσης τα πιο πρόσφατα hotfixes που αφορούν τον query optimizer, ανεξάρτητα από το επιλεγμένο compatibility level

Αυτό το configuration γίνεται μέσω του ALTER DATABASE SCOPED CONFIGURATION statement που προστέθηκε στον SQL Server 2016, ενώ παράλληλα μπορούμε ανά πάσα στιγμή να δούμε τις επιλογές που έχουμε θέσει με το sys.database_scoped_configurations όπως φαίνεται παρακάτω:

SELECT * 
FROM sys.database_scoped_configurations;
configuration_id name                                                         value                                                                                                                                                                                                                                                         value_for_secondary
---------------- ------------------------------------------------------------ --------
1                MAXDOP                                                       0                                                                                                                                                                                                                                                                NULL
2                LEGACY_CARDINALITY_ESTIMATION                                0                                                                                                                                                                                                                                                                NULL
3                PARAMETER_SNIFFING                                           1                                                                                                                                                                                                                                                                NULL
4                QUERY_OPTIMIZER_HOTFIXES                                     0                                                                                                                                                                                                                                                                NULL

Επιπλέον, μας δίνεται και η δυνατότητα να καθαρίζουμε την procedure cache όπου αποθηκεύονται τα execution plans των queries που έχουν γίνει compile μόνο της βάσης που μας ενδιαφέρει (σε αντίθεση με την χρήση της DBCC FREEPROCCACHE η οποία καθαρίζει την cache ολόκληρου του instance).

ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;  
Ημερομηνία: 14 July 2016 22:19
Αξιολόγηση:
Κατηγορίες:
Tags:
Share it:

Αφήστε το σχόλιο σας - Leave your comment

Τα σχόλια έχουν κλείσει.
Επιτρέπονται μόνο τα σχόλια από τα μέλη του SqlSchool.gr.


newsletter subscription

Εάν επιθυμείτε να λαμβάνετε ενημέρωση από εμάς, δώστε μας το e-mail σας.
PASS chapter logo
Official Professional Association for SQL Server (PASS) chapter for Greece
Join to PASS