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ı
Yalnızca birkaç özel durumla, herhangi bir Transact-SQL sorguyu veya DML işlemini (seçme, ekleme, güncelleştirme veya silme), geçici toplu işlemleri ve saklı yordamlar, tablo-değer işlevleri, tetikleyiciler ve görünümler gibi SQL modüllerini kullanarak bellek için iyileştirilmiş tablolara erişebilirsiniz.
Yorumlanan Transact-SQL, yerel olarak derlenmiş bir saklı yordam dışındaki Transact-SQL toplu işlemleri veya saklı yordamları ifade eder. Bellek optimize edilmiş tablolara yorumlanmış Transact-SQL erişimi, geçişken erişim (interop erişimi) olarak adlandırılır.
SQL Server 2016'dan (13.x) başlayarak, yorumlanmış Transact-SQL sorgular bellek için iyileştirilmiş tabloları yalnızca seri modda değil paralel olarak tarayabilir.
Bellek ile optimize edilmiş tablolara yerel derlenmiş bir saklı yordam kullanılarak da erişilebilir. Performans açısından kritik OLTP işlemleri için yerel olarak derlenmiş saklı yordamlar önerilir.
Bu senaryolar için yorumlanmış Transact-SQL erişimi önerilir:
Geçici sorgular ve yönetim görevleri.
Genellikle yerel olarak derlenmiş saklı yordamlarda (bazen OVER işlevleri olarak da adlandırılan pencere işlevleri gibi) kullanılamayan yapıları kullanan raporlama sorguları.
Uygulamanızın performans açısından kritik bölümlerini en az (veya hiç) uygulama kodu değişikliğiyle bellek için iyileştirilmiş tablolara geçirmek için. Tabloları geçirirken performans geliştirmeleri görebilirsiniz. Daha sonra saklı yordamları yerel olarak derlenmiş saklı yordamlara geçirirseniz, daha fazla performans geliştirmesi görebilirsiniz.
Yerel olarak derlenmiş saklı yordamlar için bir Transact-SQL deyimi olmadığında.
Ancak aşağıdaki Transact-SQL yapıları, bellek için optimize edilmiş bir tablodaki verilere erişen yorumlanmış Transact-SQL saklı yordamlarında desteklenmez.
| Area | Desteklenmeyen |
|---|---|
| Tablolara erişim | TRUNCATE TABLE MERGE (hedef olarak bellek için iyileştirilmiş tablo) Dinamik ve anahtar kümesi imleçleri (bunlar otomatik olarak statik duruma düşer). Bağlam bağlantısını kullanarak CLR modüllerinden erişim. Dizinli bir görünümden bellek için iyileştirilmiş bir tabloya başvurma. |
| Veritabanları arası | Veritabanları arası sorgular Veritabanları arası işlemler Bağlı sunucular |
Tablo İpuçları
Tablo ipuçları hakkında daha fazla bilgi için bkz. Tablo İpuçları (Transact-SQL). SNAPSHOT In-Memory OLTP'yi desteklemek için eklendi.
Yorumlanmış Transact-SQL kullanılarak bellek için iyileştirilmiş bir tabloya erişilirken aşağıdaki tablo ipuçları desteklenmez.
HOLDLOCK
PAGLOCK
READUNCOMMITTED
TABLOCKXX
IGNORE_CONSTRAINTS
READCOMMITTED
ROWLOCK
UPDLOCK
IGNORE_TRIGGERS
READCOMMITTEDLOCK
SPATIAL_WINDOW_MAX_CELLS = tamsayı
XLOCK
NOWAIT
READPAST
TABLOCK
Yorumlanmış Transact-SQL kullanarak açık veya örtük bir işlemden bellek için iyileştirilmiş bir tabloya erişirken, aşağıdakilerden en az birini yapmanız gerekir:
SNAPSHOT, REPEATABLEREAD veya SERIALIZABLE gibi bir yalıtım düzeyi tablo ipucu belirtin.
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT veritabanı seçeneğini ON olarak ayarlayın.
Otomatik işleme modunda çalışan sorgular tarafından erişilen bellek için iyileştirilmiş tablolar için yalıtım düzeyi tablo ipucu gerekli değildir.