Aracılığıyla paylaş


Gerçekleştirilmiş görünümleri izleme

Şunlar için geçerlidir: ✅Microsoft FabricAzure Veri Gezgini

Gerçekleştirilmiş görünümün durumunu aşağıdaki yollarla izleyin:

  • Azure portalında gerçekleştirilmiş görünüm ölçümlerini izleyin.
    • Gerçekleştirilmiş görünüm yaşı ölçümü MaterializedViewAgeSeconds , görünümün güncelliğini izlemek için kullanılmalıdır. Bu, izlenecek birincil ölçüm olmalıdır.

Not

Sürekli hatalar olsa bile, gerçekleştirilmesi hiçbir veriyi atlamaz. Görünümün her zaman kaynak tablodaki tüm kayıtları temel alarak sorgunun en güncel anlık görüntüsünü döndürmesi garanti edilir. Sabit hatalar sorgu performansını önemli ölçüde düşürür, ancak görüntüleme sorgularında yanlış sonuçlara neden olmaz.

İyi durumda olmayan gerçekleştirilmiş görünümlerde sorun giderme

Ölçüm, MaterializedViewHealth gerçekleştirilmiş görünümün iyi durumda olup olmadığını gösterir. Gerçekleştirilmiş bir görünüm iyi durumda olmadan önce, ölçümle MaterializedViewAgeSeconds not edilen yaşı kademeli olarak artar.

Gerçekleştirilmiş görünüm, aşağıdaki nedenlerden herhangi biri veya tümü nedeniyle iyi durumda değildir:

  • Gerçekleştirme işlemi başarısız oluyor. MaterializedViewResult ölçümü ve .show materialized-view failures komutu, hatanın kök nedenini belirlemeye yardımcı olabilir.
  • Sistem, kaynak tablodaki değişiklikler nedeniyle gerçekleştirilmiş görünümü otomatik olarak devre dışı bırakmış olabilir. Komutundan .show materialized-viewdöndürülen sütunu denetleyerek görünümün IsEnabled devre dışı bırakılıp devre dışı bırakılıp bırakılmadığı denetlenebilir. Gerçekleştirilmiş görünüm sınırlamaları ve bilinen sorunlar ile ilgili diğer ayrıntılara bakın
  • Veritabanı, tüm gelen verileri zamanında gerçekleştirmek için yeterli kapasiteye sahip değildir. Bu durumda, yürütmede hata olmayabilir. Ancak, alım oranına ayak uyduramadığından görünümün yaşı giderek artar. Bu durumun birkaç kök nedeni olabilir:
    • Veritabanında daha fazla gerçekleştirilmiş görünüm vardır ve veritabanının tüm görünümleri çalıştırmak için yeterli kapasitesi yoktur. Eşzamanlı olarak yürütülen gerçekleştirilmiş görünüm sayısı için varsayılan ayarları değiştirmek için bkz . gerçekleştirilmiş görünüm kapasitesi ilkesi .
    • Yeni alınan veriler görünümün büyük bir bölümüyle kesiştiğinden ve her bir gerçekleştirme döngüsünde güncelleştirilecek çok sayıda kayıt olduğundan, gerçekleştirme yavaştır. Bunun görünümün performansını neden etkilediğini öğrenmek için gerçekleştirilmiş görünümlerin nasıl çalıştığına bakın.

MaterializedViewResult ölçümü

Ölçüm MaterializedViewResult , bir gerçekleştirme döngüsünün sonucu hakkında bilgi sağlar ve gerçekleştirilmiş görünüm sistem durumundaki sorunları tanımlamak için kullanılabilir. Ölçüm ve MaterializedViewName Result boyutunu içerirDatabase.

Boyut Result aşağıdaki değerlerden birine sahip olabilir:

  • Başarılı: Gerçekleştirme başarıyla tamamlandı.

  • SourceTableNotFound: Gerçekleştirme görünümünün kaynak tablosu bırakıldı. Gerçekleştirilmiş görünüm, sonuç olarak otomatik olarak devre dışı bırakılır.

  • SourceTableSchemaChange: Kaynak tablonun şeması gerçekleştirilmiş görünüm tanımıyla uyumlu olmayacak şekilde değişti (gerçekleştirilmiş görünüm sorgusu gerçekleştirilmiş görünüm şemasıyla eşleşmiyor). Gerçekleştirilmiş görünüm, sonuç olarak otomatik olarak devre dışı bırakılır.

  • InsufficientCapacity: Veritabanının gerçekleştirilmiş görünümü oluşturmak için yeterli kapasitesi yoktur. Bu, eksik alım kapasitesini veya eksik gerçekleştirilmiş görünüm kapasitesini gösterebilir. Yetersiz kapasite hataları geçici olabilir, ancak bunlar sık sık yineleniyorsa, veritabanının ölçeğini genişletmenizi veya ilkedeki ilgili kapasiteyi artırmanızı öneririz.

  • InsufficientResources: Veritabanında gerçekleştirilmiş görünümü oluşturmak için yeterli kaynak (CPU/bellek) yok. Bu hata geçici olabilir, ancak yeniden oluşursa veritabanının ölçeğini artırmayı veya genişletmeyi deneyin.

    • Gerçekleştirme işlemi bellek sınırlarına isabet ederse, $materialized görünüm iş yükü grubu sınırları, gerçekleştirme işleminin tüketilmesi için daha fazla bellek veya CPU'nun desteklenmesi için artırılabilir.

    Örneğin, aşağıdaki komut gerçekleştirilmiş görünümler iş yükü grubunu, gerçekleştirme sırasında düğüm başına en fazla 64 gigabayt (GB) bellek kullanacak şekilde değiştirir (varsayılan değer 15 GB'tır):

    .alter-merge workload_group ['$materialized-views'] ```
    {
      "RequestLimitsPolicy": {
        "MaxMemoryPerQueryPerNode": {
          "Value": 68719241216
        }
      }
    } ```
    

    Not

    MaxMemoryPerQueryPerNode, her düğümün toplam belleğinin %50'sinden fazlasına ayarlanamaz.

Takipçi veritabanlarında gerçekleştirilmiş görünümler

Gerçekleştirilmiş görünümler, takipçi veritabanlarında tanımlanabilir. Ancak, bu gerçekleştirilmiş görünümlerin izlenmesi, gerçekleştirilmiş görünümün tanımlandığı öncü veritabanına dayalı olmalıdır. Özellikle:

  • Gerçekleştirilmiş görünüm yürütme (MaterializedViewResult, MaterializedViewExtentsRebuild) ile ilgili ölçümler yalnızca öncü veritabanında bulunur. İzleme (MaterializedViewAgeSeconds, MaterializedViewHealth, MaterializedViewRecordsInDelta) ile ilgili ölçümler, izleyici veritabanlarında da görünür.

Kaynak tüketimini izleme

Gerçekleştirilmiş görünümler kaynak tüketimi: Gerçekleştirilmiş görünümlerin gerçekleştirilmesi işlemi tarafından tüketilen kaynaklar komutu kullanılarak .show commands-and-queries izlenebilir. Aşağıdakini kullanarak belirli bir görünümün kayıtlarını filtreleyin (ve ViewNamedeğerini değiştirinDatabaseName):

.show commands-and-queries 
| where Database  == "DatabaseName" and ClientActivityId startswith "DN.MaterializedViews;ViewName;"