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
Microsoft Fabric'te SQL veritabanı
Hash Warning olay sınıfı, bir hash işlemi sırasında hash özyinelemesi veya hashing durdurulması (hash kurtarma) gerçekleştiğinde izlenebilir.
Hash özyinelemesi, derleme girdisinin mevcut belleğe sığmaması durumunda gerçekleşir ve bu da girdinin ayrı ayrı işlenen birden fazla bölüme bölünmesine yol açar. Eğer bu bölümlerden herhangi biri mevcut belleğe sığmazsa, alt bölümlere ayrılır ve bunlar da ayrı ayrı işlenir. Bu bölme süreci, her bölüm mevcut belleğe sığana veya maksimum özyineleme seviyesine ulaşana kadar devam eder (IntegerData veri sütununda gösterilir).
Karma kurtarma, bir karma oluşturma işlemi en yüksek özyineleme düzeyine ulaştığında ve kalan bölümlenmiş verileri işlemek için alternatif bir plana geçmeye karar verdiğinde gerçekleşen bir mekanizmadır. Hash kurtarma genellikle çarpık veriler nedeniyle gerçekleşir.
Hash özyinelemesi ve hash kurtarma paketi, sunucunuzda performansın düşmesine neden olur. Hash özyineleme ve kurtarma sıklığını ortadan kaldırmak veya azaltmak için aşağıdakilerden birini yapın:
Birleştirilen veya gruplanan sütunlarda istatistiklerin olduğundan emin olun.
Sütunlarda istatistikler varsa, güncelleyin.
Farklı bir birleştirme türü kullanın. Örneğin, uygunsa MERGE veya LOOP birleşimi kullanın.
Bilgisayarda kullanılabilir belleği artırın. Hash recursion veya kurtarma, sorguları işlemek için yeterli bellek olmadığında ve sorguların diske aktarılması gerektiğinde ortaya çıkar.
Birleştirmeye dahil olan sütundaki istatistikleri oluşturmak veya güncellemek, gerçekleşen hash özyineleme veya kurtarma sayısını azaltmanın en etkili yoludur.
Uyarı
Grace hash join ve recursive hash join terimleri de hash kurtarma paketini tanımlamak için kullanılır.
Önemli
Sorgu optimizatoru bir yürütme planı oluştururken Hash Warning olayının nerede gerçekleştiğini belirlemek için, izde bir Showplan olay sınıfı da toplamalısınız. Showplan etkinlik sınıflarından herhangi birini seçebilirsiniz, ancak Node ID döndürmeyen Showplan Metni ve Showplan Metni (Kodlanmamış) etkinlik sınıfları hariç. Showplans'taki düğüm kimlikleri, sorgu optimizatorunun bir sorgu yürütme planı oluşturduğunda gerçekleştirdiği her işlemi tanımlar. Bu işlemlere operatörler denir ve Showplan'daki her operatörün bir Düğüm Kimliği vardır. Hash Warning olayları için ObjectID sütunu, Showplans'taki Node ID'ye karşılık gelir, böylece hataya neden olan operatör veya işlemin belirlendiğini belirleyebilirsiniz.
Hash Uyarısı Olay Sınıfı Veri Sütunları
| Veri sütunu adı | Veri türü | Description | Sütun Kimliği | Filtrelenebilir |
|---|---|---|---|---|
| ApplicationName | nvarchar | SQL Server örneğine bağlantıyı oluşturan istemci uygulamasının adı. Bu sütun, programın gösterilen adıyla değil, uygulama tarafından iletilen değerlerle doldurulur. | 10 | Yes |
| ClientProcessID | int | ana bilgisayar tarafından istemci uygulamasının çalıştığı işleme atanan kimlik. Bu veri sütunu istemci bir süreç kimliği sağlarsa doldurulur. | 9 | Yes |
| Database ID | int | USE veritabanı ifadesi veya belirli bir örnek için USE veritabanı ifadesi verilmediyse varsayılan veritabanı tarafından belirtilen veritabanının kimliği. SQL Server Profiler, ServerName veri sütunu izlemede yakalanırsa ve sunucu kullanılabilir durumdaysa veritabanının adını görüntüler. DB_ID işlevini kullanarak veritabanının değerini belirleyin. | 3 | Yes |
| DatabaseName | nvarchar | Kullanıcı deyiminin çalıştığı veritabanının adı. | 35 | Yes |
| EventClass | int | Etkinlik türü = 55. | 27 | Hayı |
| Etkinlik Dizisi | int | İstek içindeki belirli bir olayın sırası. | 51 | Hayı |
| EventSubClass | int | Etkinlik alt sınıfı türü. 0=Özyineleme 1=Kurtarma |
21 | Yes |
| GroupID | int | SQL İzleme olayının tetiklendiği iş yükü grubunun kimliği. | 66 | Yes |
| Sunucu Adı | nvarchar | İstemcinin üzerinde çalıştığı bilgisayarın adı. Bu veri sütunu istemci ana adı verirse doldurulur. Ana bilgisayar adını belirlemek için HOST_NAME fonksiyonunu kullanın. | 8 | Yes |
| IntegerData | int | Özyineleme seviyesi (sadece hash recursiyon). | Yirmi beş | Yes |
| IsSystem | int | Olayın bir sistem işleminde mi yoksa kullanıcı işleminde mi gerçekleştiğini gösterir. 1 = sistem, 0 = kullanıcı. | 60 | Yes |
| Kullanıcı Adı | nvarchar | Kullanıcının giriş adıdır (SQL Server güvenlik girişi veya Windows giriş kimlik bilgileri DOMAIN>\<kullanıcı> adı şeklinde<). | 11 | Yes |
| LoginSid | image | Oturum açmış kullanıcının güvenlik kimlik numarası (SID). Bu bilgiyi sys.server_principals katalog görünümünde bulabilirsiniz. Her SID, sunucudaki her oturum açma için benzersizdir. | 41 | Yes |
| NTDomainName | nvarchar | Kullanıcının ait olduğu Windows etki alanı. | 7 | Yes |
| NTUserName | nvarchar | Windows kullanıcı adı. | 6 | Yes |
| ObjectID | int | Yeniden bölünmeye katılan hash ekibinin kök noktasının düğüm kimliği. Showplans'taki düğüm kimliğiyle karşılık gelir. | 22 | Yes |
| İstek Kimliği | int | Ifadeyi içeren talebin kimliği. | 49 | Yes |
| SunucuAdı | nvarchar | İzlenen SQL Server örneğinin adı. | 26 | |
| SessionLoginName | nvarchar | Oturumu oluşturan kullanıcının oturum açma adı. Örneğin, Login1 ile SQL Server'a bağlanıp bir ifadeyi Login2 olarak çalıştırırsanız, SessionLoginName Login1 ve LoginName Login2 gösterir. Bu sütun hem SQL Server hem de Windows oturum açma bilgilerini görüntüler. | 64 | Yes |
| SPID | int | Olayın gerçekleştiği oturumun kimliği. | 12 | Yes |
| StartTime | datetime | Varsa olayın başlatıldığı saat. | 14 | Yes |
| TransactionID | bigint | İşlemin sistem tarafından atanan kimliği. | 4 | Yes |
| XactSequence | bigint | Geçerli işlemi açıklayan belirteç. | 50 | Yes |