الملخص
يقدم هذا التحديث وسيطة تلميح استعلام جديدة، USE HINT، التي تتيح لك تشغيل محسن الاستعلامات دون بيانات اعتماد غير موجودة أو من دون أن تكون عضوا في دور خادم مسؤول النظام. يشبه بناء جملة تلميح الاستعلام الجديد هذا ما يلي:
<query_hint > ::=
{
USE HINT(N'key' [ [, ]...n ])
}
يقدم هذا التحديث أيضا خيارات التلميحات التالية التي يمكن استخدامها مع الوسيطة USE HINT.
| الخيار | علامة التتبع المكافئ | الوصف | ينطبق على |
|---|---|---|---|
| ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS | TF 9476 | تتسبب في قيام SQL Server بإنشاء خطة استعلام باستخدام افتراض الاحتواء البسيط بدلا من افتراض الاحتواء الأساسي الافتراضي للصلات، ضمن محسن الاستعلامات Cardinality نموذج تقدير SQL Server 2014 (12.x) أو أحدث. | |
| ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES | TF 4137 | يتسبب SQL Server في إنشاء خطة باستخدام الحد الأدنى من الانتقائية عند تقدير AND تنبؤات التصفية لمراعاة الارتباط. اسم التلميح هذا مواز لعلامة التتبع 4137 عند استخدامه مع نموذج تقدير العلاقة الأساسية ل SQL Server 2012 (11.x) والإصدارات السابقة، وله تأثير مماثل عند استخدام علامة التتبع 9471 مع نموذج تقدير العلاقة الأساسية ل SQL Server 2014 (12.x) أو الإصدارات الأحدث. | |
| DISABLE_BATCH_MODE_ADAPTIVE_JOINS | يعطل الصلات التكيفية لوضع الدفعات. | بدءا من SQL Server 2017 | |
| DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK | يعطل وضع الدفعات ملاحظات منح الذاكرة. | بدءا من SQL Server 2017 | |
| DISABLE_DEFERRED_COMPILATION_TV | يعطل التحويل البرمجي المؤجل لمتغير الجدول. | بدءا من SQL Server 2019 | |
| DISABLE_INTERLEAVED_EXECUTION_TVF | يعطل التنفيذ المتداخل للدالات ذات قيم الجدول متعددة العبارات. | بدءا من SQL Server 2017 | |
| DISABLE_OPTIMIZED_NESTED_LOOP | TF 2340 | يوجه معالج الاستعلام بعدم استخدام عملية فرز (فرز الدفعات) للصلات الحلقية المتداخلة المحسنة عند إنشاء خطة استعلام. | |
| DISABLE_OPTIMIZER_ROWGOAL | TF 4138 | يتسبب SQL Server في إنشاء خطة لا تستخدم تعديلات هدف الصف مع الاستعلامات التي تحتوي على هذه الكلمات الأساسية:
|
|
| DISABLE_PARAMETER_SNIFFING | تي ف 4136 | يقوم بتوجيه محسن الاستعلامات لاستخدام متوسط توزيع البيانات أثناء تجميع استعلام له معلمة واحدة أو أكثر. تجعل هذه الإرشادات خطة الاستعلام مستقلة عن قيمة المعلمة التي تم استخدامها للمرة الأولى عند تحويل الاستعلام البرمجي. استخدم هذا التلميح لتجاوز إعداد تكوين نطاق قاعدة البيانات PARAMETER_SNIFFING=OFF. | |
| DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK | يعطل وضع الصف ملاحظات منح الذاكرة. | بدءا من SQL Server 2019 | |
| DISABLE_TSQL_SCALAR_UDF_INLINING | تعطيل بطانة UDF العددية. | بدءا من SQL Server 2019 | |
| DISALLOW_BATCH_MODE | يعطل تنفيذ وضع الدفعات. | بدءا من SQL Server 2019 | |
| ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS | TF 4139 | يتيح الإحصائيات السريعة التي تم إنشاؤها تلقائيا (تعديل المدرج التكراري) لأي عمود فهرس رائد يحتاج إلى تقدير العلاقة الأساسية له. سيتم ضبط المدرج التكراري المستخدم لتقدير العلاقة الأساسية في وقت تجميع الاستعلام لمراعاة الحد الأقصى أو الحد الأدنى الفعلي لهذا العمود. | |
| ENABLE_QUERY_OPTIMIZER_HOTFIXES | TF 4199 | تمكين الإصلاحات العاجلة لمحسن الاستعلامات (التغييرات التي تم إصدارها في التحديثات التراكمية وحزم الخدمة ل SQL Server). استخدم هذا التلميح لتجاوز إعداد تكوين نطاق قاعدة البيانات QUERY_OPTIMIZER_HOTFIXES=ON. | |
| FORCE_DEFAULT_CARDINALITY_ESTIMATION | TF 9481 | يفرض على "محسن الاستعلامات" استخدام نموذج تقدير العلاقة التي تتطابق مع مستوى توافق قاعدة البيانات الحالي. استخدم هذا التلميح لتجاوز إعداد تكوين نطاق قاعدة البيانات LEGACY_CARDINALITY_ESTIMATION=ON. | |
| FORCE_LEGACY_CARDINALITY_ESTIMATION | TF 9481 | يفرض محسن الاستعلامات على استخدام نموذج تقدير العلاقة الأساسية ل SQL Server 2012 (11.x) والإصدارات السابقة. استخدم هذا التلميح لتجاوز إعداد تكوين نطاق قاعدة البيانات LEGACY_CARDINALITY_ESTIMATION=ON. | |
| QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n | يفرض سلوك محسن الاستعلامات على مستوى الاستعلام. يحدث هذا السلوك كما لو تم تحويل الاستعلام برمجيا مع مستوى توافق قاعدة البيانات n، حيث n هو مستوى توافق قاعدة بيانات معتمد. راجع sys.dm_exec_valid_use_hints للحصول على قائمة بالقيم المدعومة حاليا ل n. | بدءا من SQL Server 2017 (14.x) CU10 |
للحصول على مزيد من المعلومات، اطلع على التلميحات (المعاملات-SQL) - الاستعلام.
المزيد من المعلومات
يتم تضمين هذا التحديث في حزمة الخدمة 1 ل SQL Server 2016.
حول إصدارات SQL Server 2016
يحتوي كل إصدار جديد ل SQL Server 2016 على جميع الإصلاحات العاجلة وجميع إصلاحات الأمان التي تم تضمينها مع الإصدار السابق. نوصي بتثبيت أحدث إصدار ل SQL Server 2016.
السيناريوهات التي يجب فيها التلميح إلى سلوك محسن الاستعلامات (QO) SQL Server شائعة إلى حد ما، ويتم معالجتها تقليديا باستخدام عدة علامات تتبع (موثقة وغير موثقة). ومع ذلك، عندما يتم تعيين علامات التتبع بشكل عمومي، قد يكون لها تأثير سلبي على أحمال العمل الأخرى. بالإضافة إلى ذلك، فإن تمكينها لكل جلسة عمل ليس عمليا مع التطبيقات الموجودة، كما أن تمكينها لكل استعلام باستخدام OPTION QUERYTRACEON يتطلب عضوية في دور خادم sysadmin الثابت. (على الرغم من أنه يمكنك التغلب على هذا السلوك باستخدام دليل خطة أو إجراء مخزن، إلا أن بيانات الاعتماد المرتفعة ما زالت مطلوبة.)
يتم استخدام علامات التتبع لتعيين خصائص خادم محددة مؤقتا أو لإيقاف تشغيل سلوك معين, قد يكون من الصعب إدارتها وفهمها.
للحصول على معلومات حول تتبع العلامات، راجع موضوع تتبع العلامات (Transact-SQL) على موقع شبكة Microsoft Developer Network (MSDN) على الويب.
المراجع
تعرّف على المصطلحات التي تستخدمها Microsoft لوصف تحديثات البرامج.