Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analiz Platformu Sistemi (PDW)
Microsoft Fabric'teki SQL analiz uç noktası
Microsoft Fabric'teki ambar
Microsoft Fabric'teki SQL veritabanı
Belirtilen sorgu ipucunun sorgunun tamamında kullanılması gerektiğini belirtir. Her sorgu ipucu yalnızca bir kez belirtilebilir, ancak birden çok sorgu ipucuna izin verilir. deyimiyle yalnızca bir OPTION yan tümce belirtilebilir.
Bu yan tümce , , SELECTDELETEve UPDATE deyimlerinde MERGEbelirtilebilir.
Transact-SQL söz dizimi kuralları
Syntax
SQL Server, Azure SQL Yönetilen Örneği ve Azure SQL Veritabanı söz dizimi:
[ OPTION ( <query_hint> [ , ...n ] ) ]
Microsoft Fabric'te Ambar söz dizimi:
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>'
Microsoft Fabric'te Azure Synapse Analytics ve Analytics Platform Sistemi (PDW) ve SQL analiz uç noktası için söz dizimi:
OPTION ( <query_option> [ , ...n ] )
<query_option> ::=
LABEL = label_name |
<query_hint>
<query_hint> ::=
HASH JOIN
| LOOP JOIN
| MERGE JOIN
| FORCE ORDER
| { FORCE | DISABLE } EXTERNALPUSHDOWN
Azure Synapse Analytics'te sunucusuz SQL havuzu söz dizimi:
OPTION ( <query_option> [ , ...n ] )
<query_option> ::=
LABEL = label_name
Arguments
query_hint
Veritabanı Altyapısı'nın deyimi işleme biçimini özelleştirmek için hangi iyileştirici ipuçlarının kullanıldığını gösteren anahtar sözcükler. Daha fazla bilgi için bkz. Sorgu İpuçları.
Examples
Bu makaledeki kod örnekleri, AdventureWorks2025 giriş sayfasından indirebileceğiniz AdventureWorksDW2025 veya örnek veritabanını kullanır.
A. GROUP BY yan tümcesiyle OPTION yan tümcesi kullanma
Aşağıdaki örnekte yan tümcesinin OPTION bir GROUP BY yan tümceyle nasıl kullanıldığı gösterilmektedir.
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
Örnekler: Azure Synapse Analytics ve Analytics Platform System (PDW)
B. OPTION yan tümcesinde etiket bulunan SELECT deyimi
Aşağıdaki örnek, cümlede SELECT etiketli bir OPTION ifade gösterir.
SELECT * FROM FactResellerSales
OPTION (LABEL = 'q17');
C. OPTION yan tümcesinde sorgu ipucu içeren SELECT deyimi
Aşağıdaki örnekte yan tümcesinde sorgu ipucu kullanan bir deyim gösterilmektedir SELECTHASH JOIN.OPTION
-- Uses AdventureWorks
SELECT COUNT(*) FROM dbo.DimCustomer a
INNER JOIN dbo.FactInternetSales b
ON (a.CustomerKey = b.CustomerKey)
OPTION (HASH JOIN);
D. OPTION yan tümcesinde etiket ve birden çok sorgu ipucu içeren SELECT deyimi
Aşağıdaki örnek, bir etiket ve birden çok sorgu ipucu içeren bir Azure Synapse Analytics SELECT deyimidir. Sorgu İşlem düğümlerinde çalıştırıldığında SQL Server, SQL Server'ın en uygun olduğu stratejiye göre bir karma birleştirme veya birleştirme birleştirmesi uygular.
SELECT COUNT(*) FROM dbo.DimCustomer a
INNER JOIN dbo.FactInternetSales b
ON (a.CustomerKey = b.CustomerKey)
OPTION (Label = 'CustJoin', HASH JOIN, MERGE JOIN);
E. Görünümü sorgularken sorgu ipucu kullanma
Aşağıdaki örnek CustomerView adlı bir görünüm oluşturur ve ardından bir HASH JOIN görünüme ve tabloya başvuran bir sorguda sorgu ipucu kullanır.
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
F. Alt seçim ve sorgu ipucu içeren sorgu
Aşağıdaki örnekte hem alt seçim hem de sorgu ipucu içeren bir sorgu gösterilmektedir. Sorgu ipucu genel olarak uygulanır. Sorgu ipuçları subselect deyimine eklenemez.
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);
G. Birleştirme sırasını sorgudaki sıralamayla eşleşmeye zorlama
Aşağıdaki örnek, ipucunu FORCE ORDER kullanarak sorgu planını sorgu tarafından belirtilen birleştirme sırasını kullanmaya zorlar. Bu ipucu bazı sorgularda performansı artırır, ancak tüm sorgularda geliştirmez.
Bu sorgu, veritabanı tablosundaki ProspectiveBuyer bölümler ssawPDW için bölüm numaralarını, sınır değerlerini, sınır değer türlerini ve sınır başına satırları alır.
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);
H. EXTERNALPUSHDOWN kullanma
Aşağıdaki örnek yan tümcesinin WHERE dışarı Hadoop tablosundaki MapReduce işine gönderilmesini zorlar.
SELECT ID FROM External_Table_AS A
WHERE ID < 1000000
OPTION (FORCE EXTERNALPUSHDOWN);
Aşağıdaki örnek, yan tümcesinin WHERE dış Hadoop tablosundaki MapReduce işine gönderilmesini engeller. Tüm satırlar yan tümcesinin uygulandığı PDW'ye WHERE döndürülür.
SELECT ID FROM External_Table_AS A
WHERE ID < 10
OPTION (DISABLE EXTERNALPUSHDOWN);
Örnekler: Microsoft Fabric Data Warehouse
I. Belirli bir noktadan itibaren verileri sorgulama
Daha fazla bilgi için bkz . FOR TIMESTAMP sorgu ipucu.
TIMESTAMP Doku Veri Ambarı'nda OPTION verileri geçmişte olduğu gibi sorgulamak için yan tümcesindeki söz dizimini kullanın. Aşağıdaki örnek sorgu, verileri 13 Mart 2024'te saat 19:39:35.28 UTC'de göründüğü şekilde döndürür. Saat dilimi her zaman UTC'dedir.
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
J. OPTION yan tümcesinde etiket bulunan SELECT deyimi
Aşağıdaki örnek, cümlede SELECT etiketli bir OPTION ifade gösterir. Daha fazla bilgi için, Fabric Data Warehouse'daki Sorgu etiketleri'ne bakınız.
SELECT * FROM FactResellerSales
OPTION (LABEL = 'q17');