Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoyEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Se aplica a: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punto de conexión de análisis SQL en Microsoft Fabric
Warehouse en Microsoft Fabric
Base de datos SQL de Microsoft Fabric
Especifica que en toda la consulta se debe utilizar la sugerencia de consulta especificada. Solo se puede especificar cada sugerencia de consulta una vez, aunque se permiten varias sugerencias de consulta. Solo se puede especificar una cláusula OPTION
con la instrucción.
Esta cláusula se puede especificar en las instrucciones SELECT
, DELETE
, UPDATE
y MERGE
.
Convenciones de sintaxis de Transact-SQL
Sintaxis para SQL Server, Azure SQL Instancia administrada y Azure SQL Database:
[ OPTION ( <query_hint> [ , ...n ] ) ]
Sintaxis para Warehouse en Microsoft Fabric:
OPTION ( <query_option> [ , ...n ] )
<query_option> ::=
LABEL = label_name |
<query_hint>
<query_hint> ::=
HASH JOIN
| LOOP JOIN
| MERGE JOIN
| FORCE ORDER
| { FORCE | DISABLE } EXTERNALPUSHDOWN
| FOR TIMESTAMP AS OF '<point_in_time>'
Sintaxis de Azure Synapse Analytics and Analytics Platform System (PDW) y punto de conexión de sql Analytics en Microsoft Fabric:
OPTION ( <query_option> [ , ...n ] )
<query_option> ::=
LABEL = label_name |
<query_hint>
<query_hint> ::=
HASH JOIN
| LOOP JOIN
| MERGE JOIN
| FORCE ORDER
| { FORCE | DISABLE } EXTERNALPUSHDOWN
Sintaxis del grupo de SQL sin servidor en Azure Synapse Analytics:
OPTION ( <query_option> [ , ...n ] )
<query_option> ::=
LABEL = label_name
Palabras clave que indican qué sugerencias del optimizador se emplean para personalizar la forma en que el Motor de base de datos procesa la instrucción. Para más información, consulte Sugerencias de consultas.
Los ejemplos de código de Transact-SQL de este artículo utilizan la base de datos de ejemplo AdventureWorks2022
o AdventureWorksDW2022
, que se puede descargar desde la página principal de Ejemplos y proyectos de la comunidad de Microsoft SQL Server.
En el ejemplo siguiente se muestra cómo se usa la cláusula OPTION
con una cláusula GROUP BY
.
USE AdventureWorks2022;
GO
SELECT ProductID,
OrderQty,
SUM(LineTotal) AS Total
FROM Sales.SalesOrderDetail
WHERE UnitPrice < $5.00
GROUP BY ProductID, OrderQty
ORDER BY ProductID, OrderQty
OPTION (HASH GROUP, FAST 10);
GO
En el ejemplo siguiente se muestra una instrucción de Azure Synapse Analytics SELECT
con una etiqueta en la OPTION
cláusula .
SELECT * FROM FactResellerSales
OPTION (LABEL = 'q17');
En el ejemplo siguiente se muestra una SELECT
instrucción que usa una HASH JOIN
sugerencia de consulta en la OPTION
cláusula .
-- Uses AdventureWorks
SELECT COUNT(*) FROM dbo.DimCustomer a
INNER JOIN dbo.FactInternetSales b
ON (a.CustomerKey = b.CustomerKey)
OPTION (HASH JOIN);
El ejemplo siguiente es una instrucción de Azure Synapse Analytics SELECT
que contiene una etiqueta y varias sugerencias de consulta. Cuando la consulta se ejecuta en los nodos de proceso, SQL Server aplica una combinación hash o combinación de mezcla, según la estrategia que SQL Server decide es la más óptima.
SELECT COUNT(*) FROM dbo.DimCustomer a
INNER JOIN dbo.FactInternetSales b
ON (a.CustomerKey = b.CustomerKey)
OPTION (Label = 'CustJoin', HASH JOIN, MERGE JOIN);
En el ejemplo siguiente se crea una vista denominada CustomerView y, a continuación, se usa una HASH JOIN
sugerencia de consulta en una consulta que hace referencia a una vista y una tabla.
CREATE VIEW CustomerView
AS
SELECT CustomerKey,
FirstName,
LastName
FROM ssawPDW..DimCustomer;
GO
SELECT COUNT(*)
FROM dbo.CustomerView a
INNER JOIN dbo.FactInternetSales b
ON (a.CustomerKey = b.CustomerKey)
OPTION (HASH JOIN);
GO
DROP VIEW CustomerView;
GO
En el ejemplo siguiente se muestra una consulta que contiene una subselección y una sugerencia de consulta. La sugerencia de consulta se aplica de forma global. Las sugerencias de consulta no se pueden anexar a la instrucción subselect.
CREATE VIEW CustomerView
AS
SELECT CustomerKey,
FirstName,
LastName
FROM ssawPDW..DimCustomer;
GO
SELECT *
FROM (
SELECT COUNT(*) AS a
FROM dbo.CustomerView a
INNER JOIN dbo.FactInternetSales b
ON (a.CustomerKey = b.CustomerKey)
) AS t
OPTION (HASH JOIN);
En el ejemplo siguiente se usa la FORCE ORDER
sugerencia para forzar que el plan de consulta use el orden de combinación especificado por la consulta. Esta sugerencia mejora el rendimiento de algunas consultas, pero no todas las consultas.
Esta consulta obtiene números de partición, valores de límite, tipos de valores de límite y filas por límite para las particiones de la ProspectiveBuyer
tabla de la ssawPDW
base de datos.
SELECT sp.partition_number,
prv.value AS boundary_value,
lower(sty.name) AS boundary_value_type,
sp.rows
FROM sys.tables st
INNER JOIN sys.indexes si
ON st.object_id = si.object_id AND si.index_id < 2
INNER JOIN sys.partitions sp
ON sp.object_id = st.object_id AND sp.index_id = si.index_id
INNER JOIN sys.partition_schemes ps
ON ps.data_space_id = si.data_space_id
INNER JOIN sys.partition_range_values prv
ON prv.function_id = ps.function_id
INNER JOIN sys.partition_parameters pp
ON pp.function_id = ps.function_id
INNER JOIN sys.types sty
ON sty.user_type_id = pp.user_type_id AND prv.boundary_id = sp.partition_number
WHERE st.object_id = (
SELECT object_id
FROM sys.objects
WHERE name = 'FactResellerSales'
)
ORDER BY sp.partition_number
OPTION (FORCE ORDER);
En el ejemplo siguiente se fuerza la inserción de la WHERE
cláusula al trabajo de MapReduce en la tabla de Hadoop externa.
SELECT ID FROM External_Table_AS A
WHERE ID < 1000000
OPTION (FORCE EXTERNALPUSHDOWN);
En el ejemplo siguiente se evita la inserción de la WHERE
cláusula en el trabajo de MapReduce en la tabla de Hadoop externa. Todas las filas se devuelven a PDW donde se aplica la WHERE
cláusula .
SELECT ID FROM External_Table_AS A
WHERE ID < 10
OPTION (DISABLE EXTERNALPUSHDOWN);
Esto se aplica a: Warehouse en Microsoft Fabric
Para obtener más información, consulte la sugerencia de consulta FOR TIMESTAMP.
Use la sintaxis TIMESTAMP
de la cláusula OPTION
para consultar los datos tal como existía en el pasado, en Synapse Data Warehouse en Microsoft Fabric. La siguiente consulta de ejemplo devuelve datos tal como aparecían el 13 de marzo de 2024 a las 7:39:35.28 UTC. La zona horaria siempre está en UTC.
SELECT OrderDateKey,
SUM(SalesAmount) AS TotalSales
FROM FactInternetSales
GROUP BY OrderDateKey
ORDER BY OrderDateKey
OPTION (FOR TIMESTAMP AS OF '2024-03-13T19:39:35.28');--March 13, 2024 at 7:39:35.28 PM UTC
Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoy