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

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

Not

Sürekli hatalar olsa bile gerçekleştirme işlemi hiçbir veriyi atlamaz. Görünümün, kaynak tablodaki tüm kayıtları temel alarak sorgunun en güncel anlık görüntüsünü döndürmesi her zaman 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çüm tarafından MaterializedViewAgeSeconds belirtilen yaşı kademeli olarak artar.

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

  • Gerçekleştirme işlemi başarısız oluyor. MaterializedViewResult ölçümü ve .show materialized-view failures komutu hatanın kök nedenini belirlemenize yardımcı olabilir.
  • Kaynak tablodaki değişiklikler nedeniyle sistem gerçekleştirilmiş görünümü otomatik olarak devre dışı bırakmış olabilir. Komutundan.show materialized-view döndürülen sütunu denetleyerek görünümün IsEnabled devre dışı bırakılıp bırakılmadiğini de kontrol edebilirsiniz. Gerçekleştirilmiş görünüm sınırlamaları ve bilinen sorunlar ile ilgili diğer ayrıntılara bakın
  • Küme, tüm gelen verileri zamanında gerçekleştirmeye yetecek 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:
    • Kümede daha fazla gerçekleştirilmiş görünüm vardır ve kümenin 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 .
    • Her bir gerçekleştirme döngüsünde güncelleştirilemeyecek kadar çok kayıt olduğundan, gerçekleştirme yavaştır. Bunun görünümün performansını neden etkilediği hakkında daha fazla bilgi edinmek için, gerçekleştirilmiş görünümlerin nasıl çalıştığına bakın. Ölçümde her döngüde güncelleştirme gerektiren kapsam sayısı sağlanır MaterializedViewExtentsRebuild .

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ı belirlemek için kullanılabilir. Ölçüm ve MaterializedViewNameResult 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ı. Sonuç olarak gerçekleştirilmiş görünüm 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). Sonuç olarak gerçekleştirilmiş görünüm otomatik olarak devre dışı bırakılır.

  • InsufficientCapacity: Kümenin gerçekleştirilmiş görünümü gerçekleştirmek için yeterli kapasitesi yok. 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 yinelenirse kümenin ölçeğini genişletmenizi veya ilkedeki ilgili kapasiteyi artırmanızı öneririz.

  • InsufficientResources: Kümenin gerçekleştirilmiş görünümü gerçekleştirmeye yetecek kadar kaynağı (CPU/bellek) yok. Bu hata geçici olabilir, ancak yinelenirse kümenin ölçeğini artırmayı veya genişletmeyi deneyin.

    • Gerçekleştirme işlemi bellek sınırlarına isabet ederse, $materialized görüntüleme iş yükü grubu sınırları, gerçekleştirme işleminin tüketilmesi için daha fazla bellek veya CPU desteklemek üzere 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ını temel almalı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.
  • .show materialized-view failures komutu yalnızca öncü veritabanında çalışır.

Kaynak tüketimini izleme

Gerçekleştirilmiş görünümler kaynak tüketimi: Gerçekleştirilmiş görünümler gerçekleştirme 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 için kayıtları filtreleyin (ve ViewNamedeğerini değiştirinDatabaseName):

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