CREATE WORKLOAD CLASSIFIER (Transact-SQL)

Şunlar için geçerlidir: Azure Synapse Analytics

İş yükü yönetiminde kullanılmak üzere bir sınıflandırıcı nesne oluşturur. Sınıflandırıcı, sınıflandırıcı ifadesi tanımında belirtilen parametrelere göre gelen istekleri bir iş yükü grubuna atar. Sınıflandırıcılar gönderilen her talekle birlikte değerlendirilir. Bir istek sınıflandırıcı ile eşleştirilmemişse, varsayılan iş yükü grubuna atanır. Varsayılan iş yükü grubu smallrc kaynak sınıfıdır.

Note

Yönetilen kimliklerin sınıflandırılması (MI) davranışı, Azure Synapse çalışma alanlarındaki ayrılmış SQL havuzu ile bağımsız ayrılmış SQL havuzu (eski adıyla SQL DW) arasında farklılık gösterir. Bağımsız ayrılmış SQL havuzu MI atanan kimliği korurken, Azure Synapse workspaces dbo rolüne MI ekler. Bu değiştirilemez. Dbo rolü varsayılan olarak olarak sınıflandırılırsmallrc. dbo rolü için bir sınıflandırıcı oluşturmak, isteklerin başka bir iş yükü grubuna smallrcatamasına olanak tanır. Eğer dbo tek başına sınıflandırma için çok genelse, ve daha geniş etkileri varsa, dbo rol sınıflandırmasıyla birlikte etiket, oturum veya zaman bazlı sınıflandırma kullanmayı düşünün.

Transact-SQL söz dizimi kuralları

Syntax

CREATE WORKLOAD CLASSIFIER classifier_name
WITH
    ( WORKLOAD_GROUP = 'name'
    , MEMBERNAME = 'security_account'
    [ [ , ] WLM_LABEL = 'label' ]
    [ [ , ] WLM_CONTEXT = 'context' ]
    [ [ , ] START_TIME = 'HH:MM' ]
    [ [ , ] END_TIME = 'HH:MM' ]
    [ [ , ] IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH } ] )
[ ; ]

Note

Bu söz dizimi, Azure Synapse Analytics'teki sunucusuz SQL havuzu tarafından desteklenmez.

Arguments

classifier_name

İş yükü sınıflandırıcısının tanımlandığı adı belirtir. classifier_namesysname. Bu parametre 128 karaktere kadar olabilir ve örnek içinde benzersiz olmalıdır.

WORKLOAD_GROUP = 'isim'

Sınıflandırıcı kuralları koşullar karşılandığında, name talebi bir iş yükü grubuna eşler. Adımsysname. Bu parametre 128 karaktere kadar uzun olabilir ve sınıflandırıcı oluşturulduğunda geçerli bir iş yükü grubu adı olmalıdır.

Mevcut iş yükü grupları sys.workload_management_workload_groups katalog görünümünde bulunabilir.

ÜYE ADI = 'security_account'

Güvenlik hesabı ile sınıflandırma için kullanıldı. security_accountsysname'dir, varsayılan yoktur. security_account veritabanı kullanıcısı, veritabanı rolü, Microsoft Entra girişi veya Microsoft Entra grubu olabilir.

Note

Sisteme bağlandığında, user_name()MEMBERNAME sınıflandırma sürecinin talebi sınıflandırmak için kullanacağı fonksiyonu doğrulamak için bu fonksiyonu kullanın. Fonksiyonla doğrulamak, MEMBERNAMEuser_name() Microsoft Entra ID veya hizmet ana sınıflandırma sorunlarını çözmek için faydalı olabilir. Eğer user_name() dönerse dbo, istekleri sınıflandırmak için dboMEMBERNAME kullanabilirsiniz. DBO rolünün tüm üyeleri sınıflandırılacaktır. Ek sınıflandırma parametreleri, örneğin WLM_LABEL veya WLM_CONTEXT ayrıca birden fazla Microsoft Entra hesabından gelen talepleri dbo rolüne eşlemesi için özel olarak sınıflandırmak için kullanılabilir.

WLM_LABEL

Bir isteğin sınıflandırılabileceği etiket değerini belirler. Etiket, nvarchar(255) tipinde isteğe bağlı bir parametredir. İstekte sınıflandırıcı yapılandırmasını eşleştirmek için OPTION (LABEL) tuşunu kullanın.

Örneğin:

CREATE WORKLOAD CLASSIFIER wcELTLoads
WITH (
    WORKLOAD_GROUP = 'wgDataLoad',
    MEMBERNAME = 'ELTRole',
    WLM_LABEL = 'dimension_loads'
);
    
SELECT COUNT(*) FROM DimCustomer
OPTION (LABEL = 'dimension_loads');

WLM_CONTEXT

Bir isteğin sınıflandırılabileceği oturum bağlam değerini belirler. WLM_CONTEXT nvarchar(255) tipinde isteğe bağlı bir parametredir. Oturum bağlamını ayarlamak için istek göndermeden önce değişken adı wlm_contexteşit olan sys.sp_set_session_context kullanın.

Örneğin:

CREATE WORKLOAD CLASSIFIER wcDataLoad
WITH (
    WORKLOAD_GROUP = 'wgDataLoad',
    MEMBERNAME = 'ELTRole',
    WLM_CONTEXT = 'dim_load'
);

--set session context
EXEC sys.sp_set_session_context @key = 'wlm_context', @value = 'dim_load';

--run multiple statements using the wlm_context setting
SELECT COUNT(*) FROM stg.daily_customer_load;
SELECT COUNT(*) FROM stg.daily_sales_load;

--turn off the wlm_context session setting
EXEC sys.sp_set_session_context @key = 'wlm_context', @value = NULL;

START_TIME ve END_TIME

Bir talebin sınıflandırılabileceği başlangıç ve bitiş saatini belirtir. Her ikisi START_TIME de END_TIME UTC saat dilimindeki formattadır HH:mm . START_TIME ve END_TIME birlikte belirtilmelidir.

Örneğin:

CREATE WORKLOAD CLASSIFIER wcELTLoads
WITH (
    WORKLOAD_GROUP = 'wgDataLoads',
    MEMBERNAME = 'ELTRole',
    START_TIME = '22:00',
    END_TIME = '02:00'
);

ÖNEM DERECESI = { DÜŞÜK | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }

Bir talebin göreli önemini belirtir. IMPORTANCE aşağıdaki seçeneklerden biridir:

  • LOW
  • BELOW_NORMAL
  • NORMAL (varsayılan)
  • ABOVE_NORMAL
  • HIGH

Belirtilmediyse IMPORTANCE , iş yükü grubunun önem ayarı kullanılır. Varsayılan iş yükü grubunun önemi .NORMAL Önem, isteklerin hangi sırayla planlandığını etkiler, böylece kaynaklara ve kilitlere ilk erişim sağlar.

Remarks

Kullanıcı tarafından tanımlanan sınıflandırıcıların maksimum sayısı .100 Bu sınırı aşan ek yapılandırmalar desteklenmez. Birden çok iş yükü veya kullanıcı arasında tek bir ayarın verimli bir şekilde uygulanması için sınıflandırıcıları ortak bir kategori altında gruplandırmanızı öneririz.

Sınıflandırma parametre ağırlıklandırması

Bir istek, birden fazla sınıflandırıcıya karşı eşleşebilir. Sınıflandırıcı parametreleri için bir ağırlık var. Daha yüksek ağırlıklı eşleştirme sınıflandırıcısı, iş yükü grubu ve önemi atamak için kullanılır. Ağırlık aşağıdaki gibi olur:

Sınıflandırıcı parametresi Weight
USER 64
ROLE 32
WLM_LABEL 16
WLM_CONTEXT 8
START_TIME/END_TIME 4

Aşağıdaki sınıflandırıcı konfigürasyonlarını ele alın.

CREATE WORKLOAD CLASSIFIER classifierA
WITH (
    WORKLOAD_GROUP = 'wgDashboards',
    MEMBERNAME = 'userloginA',
    IMPORTANCE = HIGH,
    WLM_LABEL = 'salereport'
);

CREATE WORKLOAD CLASSIFIER classifierB
WITH (
    WORKLOAD_GROUP = 'wgUserQueries',
    MEMBERNAME = 'userloginA',
    IMPORTANCE = LOW,
    START_TIME = '18:00',
    END_TIME = '07:00'
);

Kullanıcı userloginA her iki sınıflandırıcı için yapılandırılmıştır. Eğer userloginA etiketi 6PM ile 7AM UTC arasında eşit bir sorgu salesreport çalıştırılırsa, talep önemli iş yükü grubuna HIGH sınıflandırılırwgDashboards. Talebi mesai dışı raporlama için önemli olarak sınıflandırmak beklentisi olabilir, ancak ağırlığı WLM_LABEL daha yüksektirEND_TIME/START_TIME.wgUserQueriesLOW Ağırlıklandırma classifierA80 (64 kullanıcı için, artı 16 için WLM_LABEL). Ağırlıklandırma ( kullanıcı için, 4 için/START_TIMEEND_TIME ).64classifierB68 Bu durumda, 'ye classifierBekleyebilirsinizWLM_LABEL.

Daha fazla bilgi için iş yükü ağırlıklandırmasına bakınız.

Permissions

CONTROL DATABASE izin gerektirir.

Examples

Aşağıdaki örnek, 'de wgcELTRolebir iş yükü sınıflandırıcısının nasıl oluşturulacağını göstermektedir. İş yükü grubunu, yani kullanıcıyı ELTRolekullanır staticrc20 ve ÖNEMİ olarak ayarlarABOVE_NORMAL.

CREATE WORKLOAD CLASSIFIER wgcELTRole
WITH (
    WORKLOAD_GROUP = 'staticrc20',
    MEMBERNAME = 'ELTRole',
    IMPORTANCE = ABOVE_NORMAL
);