Samenvatting
Deze update bevat een nieuwe queryhint, waarbij u de Hint kunt gebruiken omde query Optimizer te dedriven zonder verhoogde referenties of zonder een lid te zijn van de serverrol sysadmin. De syntaxis van deze nieuwe query-Hint ziet er ongeveer als volgt uit:
<query_hint > ::={USE HINT(N'key' [ [, ]...n ])}
Deze update bevat ook de volgende opties voor hints die kunnen worden gebruikt met het argument Hint gebruiken .
Kunt |
Overeenkomstige traceringsvlag |
Beschrijving |
Van toepassing op |
---|---|---|---|
ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS |
TF 9476 |
Zorgt SQL Server voor het genereren van een queryplan met behulp van de eenvoudige insluitings veronderstelling in plaats van de standaardbasis continuïteit voor joins, onder de query Optimizer Modellerings model met SQL Server 2014 (12. x) of nieuwer. |
|
ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES |
TF 4137 |
Genereert SQL Server een plan op basis van de minimale selectiviteit bij het schatten van en predikaten voor filters met een account voor correlatie. Deze Hint naam is parallel aan traceringsvlag 4137 bij gebruik in combinatie met het kardinality-model van SQL server 2012 (11. x) en eerdere versies, en heeft hetzelfde effect als de traceringsvlag 9471 wordt gebruikt met SQL Server 2014 (12. x) of hoger. |
|
DISABLE_BATCH_MODE_ADAPTIVE_JOINS |
Schakelt de aanpassing van de batchmodus samen. |
beginnen in SQL Server 2017 |
|
DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK |
Schakelt batch subsidie feedback in. |
beginnen in SQL Server 2017 |
|
DISABLE_DEFERRED_COMPILATION_TV |
Schakelt de uitgestelde compilatie van tabelvariabelen uit. |
beginnen in SQL Server 2019 |
|
DISABLE_INTERLEAVED_EXECUTION_TVF |
Schakelt Interleaved uitvoering uit voor tabel met waarden met een meervoudige afschrift functie. |
beginnen in SQL Server 2017 |
|
DISABLE_OPTIMIZED_NESTED_LOOP |
TF 2340 |
Hiermee geeft u aan dat de queryprocessor niet gebruikmaakt van een sorteerbewerking (batch sorteren) voor geoptimaliseerde geneste lussen om te worden gebruikt voor het genereren van een queryplan. |
|
DISABLE_OPTIMIZER_ROWGOAL |
TF 4138 |
Hiermee wordt door SQL Server een plan gegenereerd dat geen wijzigingen in de aanstelling van de rijnaam gebruikt met query's die deze trefwoorden bevatten:
|
|
DISABLE_PARAMETER_SNIFFING |
TF 4136 |
Hiermee zorgt u ervoor dat de query Optimizer de gemiddelden van Gegevensdistributie van een query met een of meer parameters gebruikt. Met deze instructie wordt het queryplan onafhankelijk gemaakt van de parameterwaarde die voor het eerst werd gebruikt toen de query werd gecompileerd. Gebruik deze hint om configuratie-instellingen voor database bereik te negeren PARAMETER_SNIFFING. |
|
DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK |
Schakelt de rijgegevens voor de rij in. |
beginnen in SQL Server 2019 |
|
DISABLE_TSQL_SCALAR_UDF_INLINING |
Schakelt scalaire inopmaak van scalair uit. |
beginnen in SQL Server 2019 |
|
DISALLOW_BATCH_MODE |
Schakelt uitvoering van batchmodus uit. |
beginnen in SQL Server 2019 |
|
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS |
TF 4139 |
Schakelt automatisch gegenereerde snelle statistieken (histogram wijziging) in voor een kolom met voorloop indexen waarvoor de schatting van de kardinaliteit is vereist. Het histogram dat wordt gebruikt voor de schatting van de kardinaliteit wordt aangepast op het moment dat de compilatie van de query wordt uitgevoerd voor de werkelijke maximum-of minimumwaarde van deze kolom. |
|
ENABLE_QUERY_OPTIMIZER_HOTFIXES |
TF 4199 |
Schakelt de hotfixes voor query Optimizer in (wijzigingen die zijn uitgebracht in SQL Server-cumulatieve updates en service packs). Gebruik deze hint om te negeren Configuratie- instellingen voor database bereik QUERY_OPTIMIZER_HOTFIXES = aan. |
|
FORCE_DEFAULT_CARDINALITY_ESTIMATION |
TF 9481 |
Zorgt ervoor dat de query Optimizer wordt gebruikt Niveau van kardinaliteit dat overeenkomt met het huidige compatibiliteitsniveau van de database. Gebruik deze hint om te negeren Configuratie- instellingen voor database bereik LEGACY_CARDINALITY_ESTIMATION = aan. |
|
FORCE_LEGACY_CARDINALITY_ESTIMATION |
TF 9481 |
Zorgt ervoor dat de query Optimizer wordt gebruikt Kardinality model van SQL Server 2012 (11. x) en eerdere versies. Gebruik deze hint om configuratie-instellingen voor database bereik te negeren LEGACY_CARDINALITY_ESTIMATION = aan. |
|
QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n |
Hiermee wordt het gedrag van de query Optimizer geforceerd op query niveau. Dit probleem doet zich voor als de query werd gecompileerd met databasecompatibiliteitsniveau n, waarbij n een ondersteund databasecompatibiliteitsniveau is. Raadpleegsys.dm_exec_valid_use_hints voor een lijst met de momenteel ondersteunde waarden voor n. |
beginnen met SQL Server 2017 (14. x) CU10 |
Zie hints (Transact-SQL)-queryvoor meer informatie .
Meer informatie
Deze update maakt deel uit van Service Pack 1 voor SQL Server 2016.
Elke nieuwe build voor SQL Server 2016 bevat alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige versie. U wordt aangeraden de nieuwste versie van SQL Server 2016te installeren.
Scenario's waarin de werking van het SQL Server query Optimizer (QO) gedrag moet worden bepaald, is tamelijk gebruikelijk en gebruikelijk dat ze worden geadresseerd met behulp van verschillende (gedocumenteerde en niet-gedocumenteerde) spoor vlaggen. Wanneer tracerings vlaggen globaal worden ingesteld, hebben ze mogelijk een negatieve invloed op andere werkbelastingen. Daarnaast is het inschakelen van deze sessie niet praktisch met bestaande toepassingen en schakelt u ze in met Option QUERYTRACEON is lidmaatschap van de vaste serverfunctie sysadmin vereist. (Hoewel u dit gedrag kunt omzeilen met behulp van een abonnement gids of een opgeslagen procedure, zijn er nog steeds benodigde referenties nodig.) Met beschikbare vlaggen worden tijdelijke aanduidingen ingesteld voor het instellen van specifieke serverkenmerken of om een bepaald gedrag te deactiveren, dan kunnen ze moeilijk te beheren en te begrijpen zijn. Zie voor meer informatie over traceer vlaggen het onderwerp tracerings vlaggen (Transact-SQL) op de website van MSDN (Microsoft Developer Network).
Verwijzingen
Lees meer over de terminologie die door Microsoft wordt gebruikt om software-updates te beschrijven.