Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği uygulama performansınızı geliştirmek için In-Memory OLTP kullanın

Şunlar için geçerlidir: Azure SQL Veritabanı Azure SQL Yönetilen Örneği

Bellek İçi OLTP, fiyatlandırma katmanını artırmadan Premium ve İş Açısından Kritik katmanı veritabanlarında işlem işleme, veri alımı ve geçici veri senaryolarının performansını geliştirmek için kullanılabilir.

Mevcut veritabanınızda In-Memory OLTP'yi benimsemek için bu adımları izleyin.

1. Adım: Premium ve İş Açısından Kritik katmanı veritabanı kullandığınızdan emin olun

In-Memory OLTP yalnızca Premium ve İş Açısından Kritik katmanı veritabanlarında desteklenir. döndürülen sonuç 1 (0 değil) olduğunda In-Memory desteklenir:

SELECT DatabasePropertyEx(Db_Name(), 'IsXTPSupported');

XTP, Aşırı İşlem İşleme anlamına gelir

2. Adım: In-Memory OLTP'ye geçirilen nesneleri tanımlama

SSMS, etkin bir iş yüküne sahip bir veritabanında çalıştırabileceğiniz bir İşlem Performansı Analizine Genel Bakış raporu içerir. Rapor, In-Memory OLTP'ye geçiş için aday olan tabloları ve saklı yordamları tanımlar.

SSMS'de raporu oluşturmak için:

  • Nesne Gezgini veritabanı düğümünüzü sağ tıklatın.
  • Raporlar>Standart Raporlar>İşlem Performansı Analizine Genel Bakış'a tıklayın.

Daha fazla bilgi için bkz. Bir Tablo veya Saklı Yordamın OLTP'In-Memory Taşıması Gerekip Gerekmediğini Belirleme.

3. Adım: Karşılaştırılabilir bir test veritabanı oluşturma

Raporun veritabanınızın bellek için iyileştirilmiş bir tabloya dönüştürülmekten yararlanabilecek bir tablosu olduğunu gösterdiğini varsayalım. Endikasyonu test ederek onaylamak için önce test etmenizi öneririz.

Üretim veritabanınızın test kopyasına ihtiyacınız vardır. Test veritabanı, üretim veritabanınızla aynı hizmet katmanı düzeyinde olmalıdır.

Testi kolaylaştırmak için test veritabanınızda aşağıdaki gibi ayarlamalar yapın:

  1. SSMS kullanarak test veritabanına bağlanın.

  2. Sorgularda WITH (SNAPSHOT) seçeneğine ihtiyaç duymamak için veritabanı seçeneğini aşağıdaki T-SQL deyiminde gösterildiği gibi ayarlayın:

    ALTER DATABASE CURRENT
     SET
         MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = ON;
    

4. Adım: Tabloları geçirme

Test etmek istediğiniz tablonun bellek için iyileştirilmiş bir kopyasını oluşturmanız ve doldurmanız gerekir. Aşağıdakilerden birini kullanarak oluşturabilirsiniz:

  • SSMS'deki kullanışlı Bellek İyileştirme Sihirbazı.
  • El ile T-SQL.

SSMS'de Bellek İyileştirme Sihirbazı

Bu geçiş seçeneğini kullanmak için:

  1. SSMS ile test veritabanına bağlanın.

  2. Nesne Gezgini tabloya sağ tıklayın ve ardından Bellek İyileştirme Danışmanı'na tıklayın.

    Tablo Belleği İyileştirici Danışmanı sihirbazı görüntülenir.

  3. Sihirbazda, tablonun bellek için iyileştirilmiş tablolarda desteklenmeyen özellikleri olup olmadığını görmek için Geçiş doğrulaması 'na (veya İleri düğmesine) tıklayın. Daha fazla bilgi için bkz.

  4. Tabloda desteklenmeyen özellikler yoksa, danışman sizin için gerçek şemayı ve veri geçişini gerçekleştirebilir.

El ile T-SQL

Bu geçiş seçeneğini kullanmak için:

  1. SSMS (veya benzer bir yardımcı program) kullanarak test veritabanınıza bağlanın.

  2. Tablonuz ve dizinleri için T-SQL betiğinin tamamını alın.

    • SSMS'de tablo düğümünüzü sağ tıklatın.
    • Yeni Sorgu Penceresine Create Olarak> BetikTablosu'na> tıklayın.
  3. Betik penceresinde CREATE TABLE deyimine WITH (MEMORY_OPTIMIZED = ON) ekleyin.

  4. KÜMELENDİ dizini varsa, kümeLENMEMIŞ olarak değiştirin.

  5. SP_RENAME kullanarak mevcut tabloyu yeniden adlandırın.

  6. Düzenlenen CREATE TABLE betiğinizi çalıştırarak tablonun bellek için iyileştirilmiş yeni kopyasını oluşturun.

  7. INSERT kullanarak verileri bellek için iyileştirilmiş tablonuza kopyalayın... SELECT * INTO:

INSERT INTO [<new_memory_optimized_table>]
        SELECT * FROM [<old_disk_based_table>];

5. Adım (isteğe bağlı): Saklı yordamları geçirme

In-Memory özelliği, gelişmiş performans için saklı yordamı da değiştirebilir.

Yerel olarak derlenmiş saklı yordamlarla ilgili dikkat edilmesi gerekenler

Yerel olarak derlenmiş saklı yordam, T-SQL WITH yan tümcesinde aşağıdaki seçeneklere sahip olmalıdır:

  • NATIVE_COMPILATION
  • SCHEMABINDING: Saklı yordamı bırakmadığınız sürece saklı yordamın sütun tanımlarının saklı yordamı etkileyebilecek şekilde değiştirilemeyeceği anlamına gelir.

Yerel bir modülde işlem yönetimi için bir büyük ATOMIK blok kullanılmalıdır. Açık bir BEGIN TRANSACTION veya ROLLBACK TRANSACTION için rol yoktur. Kodunuz bir iş kuralı ihlali algılarsa throw deyimiyle atomik bloğu sonlandırabilir.

Yerel olarak derlenmiş tipik CREATE PROCEDURE

Genellikle yerel olarak derlenmiş bir saklı yordam oluşturmak için T-SQL aşağıdaki şablona benzer:

CREATE PROCEDURE schemaname.procedurename
    @param1 type1, …
    WITH NATIVE_COMPILATION, SCHEMABINDING
    AS
        BEGIN ATOMIC WITH
            (TRANSACTION ISOLATION LEVEL = SNAPSHOT,
            LANGUAGE = N'your_language__see_sys.languages'
            )
        …
        END;
  • TRANSACTION_ISOLATION_LEVEL için SNAPSHOT, yerel olarak derlenmiş saklı yordamın en yaygın değeridir. Ancak, diğer değerlerin bir alt kümesi de desteklenir:

    • YINELENEBILIR OKUMA
    • SERİLEŞTİRİLEBİLİR
  • LANGUAGE değeri sys.languages görünümünde bulunmalıdır.

Saklı yordamı geçirme

Geçiş adımları şunlardır:

  1. CREATE PROCEDURE betiğini normal yorumlanan saklı yordama alın.

  2. Üst bilgisini önceki şablonla eşleşecek şekilde yeniden yaz.

  3. Saklı yordam T-SQL kodunun yerel olarak derlenmiş saklı yordamlar için desteklenmeyen özellikleri kullanıp kullanmadığını belirleyin. Gerekirse geçici çözümler uygulayın.

    Ayrıntılar için bkz. Yerel Olarak Derlenmiş Saklı Yordamlar için Geçiş Sorunları.

  4. SP_RENAME kullanarak eski saklı yordamı yeniden adlandırın. Ya da DROP olarak da anlayın.

  5. Düzenlenen CREATE PROCEDURE T-SQL betiğinizi çalıştırın.

6. Adım: İş yükünüzü testte çalıştırma

Test veritabanınızda üretim veritabanınızda çalışan iş yüküne benzer bir iş yükü çalıştırın. Bu, tablolar ve saklı yordamlar için In-Memory özelliğini kullanmanızla elde edilen performans kazanımını ortaya çıkarmalıdır.

İş yükünün başlıca öznitelikleri şunlardır:

  • Eşzamanlı bağlantı sayısı.
  • Okuma/yazma oranı.

Test iş yükünü uyarlamak ve çalıştırmak için bu bellek içi makalede gösterilen kullanışlı ostress.exe aracı kullanmayı göz önünde bulundurun.

Ağ gecikme süresini en aza indirmek için testinizi veritabanının bulunduğu Azure coğrafi bölgesinde çalıştırın.

7. Adım: Uygulama sonrası izleme

üretimdeki In-Memory uygulamalarınızın performans etkilerini izlemeyi göz önünde bulundurun: