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:Azure SQL Veritabanı
Bellek içi teknolojiler uygulamanızın performansını artırmanıza ve veritabanınızın maliyetini azaltmanıza olanak tanır.
Bellek içi teknolojiler ne zaman kullanılır?
Bellek içi teknolojileri kullanarak çeşitli iş yükleriyle performans geliştirmeleri elde edebilirsiniz:
- İşlemsel (çevrimiçi işlem işleme (OLTP)), burada isteklerin çoğu daha küçük bir veri kümesini okur veya günceller, örneğin oluşturma/okuma/güncelleme/silme (CRUD) işlemleri.
- Sorguların çoğunun raporlama amacıyla karmaşık hesaplamalara ve ayrıca yük (veya toplu yükleme) işlemleri gerçekleştiren ve/veya mevcut tablolara veri değişiklikleri yazan düzenli olarak zamanlanmış işlemlere sahip olduğu analitik (çevrimiçi analitik işleme (OLAP)). OLAP iş yükleri genellikle OLTP iş yüklerinden düzenli aralıklarla güncelleştirilir.
- Hem OLTP hem de OLAP sorgularının aynı veri kümesinde yürütüldüğü karma (karma işlem/analitik işleme (HTAP)).
Bellek içi teknolojiler, sorguların yerel derlemesini kullanarak veya temel alınan donanımda bulunan toplu işleme ve SIMD yönergeleri gibi gelişmiş işlemleri kullanarak işlenecek verileri bellekte tutarak bu iş yüklerinin performansını artırabilir.
Genel bakış
Azure SQL Veritabanı aşağıdaki bellek içi teknolojileri destekler:
- Bellek İçi OLTP saniyede işlem sayısını artırır ve işlem işleme gecikme süresini azaltır. Bellek İçi OLTP'den yararlanan senaryolar şunlardır: alım satım ve oyun gibi yüksek aktarım hızına sahip işlem işlemleri, olaylar veya IoT cihazlarından veri alımı, önbelleğe alma, veri yükü ve geçici tablo ve tablo değişkeni senaryoları.
- Kümelenmiş columnstore dizinleri depolama ayak izinizi azaltır (10 kata kadar) ve raporlama ve analiz sorgularının performansını artırır. Bunu, veritabanınıza daha fazla veri sığdırmak ve performansı geliştirmek için veri reyonlarınızdaki olgu tablolarıyla kullanabilirsiniz. Ayrıca, verileri arşivleyip 10 kata kadar daha fazla veri sorgulamak için işlemsel veritabanınızdaki geçmiş verilerle de kullanabilirsiniz.
- HTAP için kümelenmemiş columnstore dizinleri , pahalı bir ayıklama, dönüştürme ve yükleme (ETL) işlemi çalıştırmanıza ve veri ambarı doldurulmasını beklemenize gerek kalmadan işlemsel veritabanını doğrudan sorgulayarak işletmeniz hakkında gerçek zamanlı içgörüler elde etmenize yardımcı olur. Kümelenmemiş columnstore dizinleri OLTP veritabanında analiz sorgularının hızlı yürütülmesine olanak tanırken işletimsel iş yükü üzerindeki etkiyi azaltır.
- HTAP için bellek için iyileştirilmiş kümelenmiş columnstore dizinleri , hızlı işlem gerçekleştirmenize ve analiz sorgularını aynı verilerde çok hızlı bir şekilde eşzamanlı olarak çalıştırmanıza olanak tanır.
Columnstore dizinleri ve Bellek İçi OLTP sırasıyla 2012 ve 2014'te SQL Server'a tanıtıldı. Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve SQL Server, bellek içi teknolojilerin aynı uygulamasını paylaşır.
Not
Örnek veritabanı ve ostress.exe kullanılarak Bellek İçi OLTP teknolojisinin performans avantajlarını gösteren, ayrıntılı adım adım bir öğretici için, AdventureWorksLT
bkz.
Bellek içi teknolojinin avantajları
Daha verimli sorgu ve işlem işlemleri nedeniyle bellek içi teknolojiler maliyeti azaltmanıza da yardımcı olur. Performans kazancı elde etmek için genellikle veritabanının fiyatlandırma katmanını yükseltmeniz gerekmez. Bazı durumlarda, bellek içi teknolojilerde performans iyileştirmeleri görmeye devam ederken fiyatlandırma katmanını da düşürebilirsiniz.
Quorum Business Solutions, Bellek İçi OLTP kullanarak DTU'ları %70 oranında geliştirirken iş yükünü iki katına çıkarabildi. Daha fazla bilgi için bkz. Azure SQL Veritabanı'nda Bellek İçi OLTP.
Not
Bellek İçi OLTP, Azure SQL Veritabanı Premium (DTU) ve İş Açısından Kritik (sanal çekirdek) hizmet katmanlarında kullanılabilir. Hiper Ölçek hizmet katmanı, Bellek İçi OLTP nesnelerinin bir alt kümesini destekler. Daha fazla bilgi için bkz . Hiper Ölçek sınırlamaları.
Columnstore dizinleri Temel katman dışındaki tüm hizmet katmanlarında ve hizmet hedefi S3'ün altında olduğunda Standart katmanda kullanılabilir. Daha fazla bilgi için bkz Columnstore dizinlerini içeren veritabanlarının hizmet katmanlarını değiştirme.
Bu makalede, bellek içi OLTP ve columnstore dizinlerinin Azure SQL Veritabanı özgü yönleri açıklanır ve şunları görmenize olanak sağlayan örnekler de bulunur:
- Bu teknolojilerin depolama ve veri boyutu sınırları üzerindeki etkisi.
- Bu teknolojileri kullanan veritabanlarının farklı fiyatlandırma katmanları arasındaki hareketini yönetme.
- Bellek İçi OLTP'nin ve sütun deposu dizinlerinin örnek kullanımı.
SQL Server'daki bellek içi teknolojiler hakkında daha fazla bilgi için bkz:
- Bellek İçi OLTP'ye genel bakış ve kullanım senaryoları (müşteri örnek olaylarına başvurular ve başlangıç için gerekli bilgileri içerir)
- Bellek İçi OLTP Belgelendirmesi
- Columnstore Dizinleri Kılavuzu
- Gerçek zamanlı operasyonel analiz olarak da bilinen hibrit işlemsel/analitik işleme (HTAP)
Bellek İçi OLTP
Bellek İçi OLTP teknolojisi, tüm verileri bellekte tutarak son derece hızlı veri erişimi işlemleri sağlar. Ayrıca OLTP iş yükünün performansını artırmak için özel dizinler, sorguların yerel derlemesi ve mandalsız veri erişimi kullanır. Bellek İçi OLTP verilerinizi düzenlemenin iki yolu vardır:
Her satırın ayrı bir bellek nesnesi olduğu bellek için iyileştirilmiş satır deposu biçimi. Bu, yüksek performanslı OLTP iş yükleri için iyileştirilmiş klasik bir Bellek İçi OLTP biçimidir. Bellek için iyileştirilmiş satır deposu formatında kullanılabilecek iki tür bellek optimize edilmiş tablo vardır.
-
Sunucu yeniden başlatıldıktan sonra belleğe yerleştirilen satırların korunduğu dayanıklı tablolar (
SCHEMA_AND_DATA
). Bu tür tablolar, bellek içi iyileştirmelerin ek avantajlarıyla, geleneksel bir rowstore tablosu şeklinde işlev görür. -
Satırların yeniden başlatıldıktan sonra korunmadığı, kalıcı olmayan tablolar (
SCHEMA_ONLY
). Bu tablo türü geçici veriler (örneğin, geçici tabloların değiştirilmesi) veya kalıcı bir tabloya (hazırlama tabloları olarak adlandırılır) taşımadan önce verileri hızla yüklemeniz gereken tablolar için tasarlanmıştır.
-
Sunucu yeniden başlatıldıktan sonra belleğe yerleştirilen satırların korunduğu dayanıklı tablolar (
Verilerin sütun formatında düzenlendiği, bellek için optimize edilmiş sütun deposu (columnstore) biçimi. Bu yapı, OLTP iş yükünüzün çalıştığı aynı veri yapısı üzerinde analiz sorguları çalıştırmanız gereken HTAP senaryoları için tasarlanmıştır.
Not
Bellek İçi OLTP teknolojisi, bellekte tam olarak bulunabilen veri yapıları için tasarlanmıştır. Bellek içi veriler diske yüklenemediğinden, yeterli belleğe sahip bir veritabanı kullandığınızdan emin olun. Daha fazla bilgi için bkz . Bellek İçi OLTP için veri boyutu ve depolama üst sınırı.
- Bellek İçi OLTP için hızlı bir başlangıç: Hızlı Başlangıç 1: Daha Hızlı T-SQL Performansı için Bellek İçi OLTP Teknolojileri.
Bellek İçi OLTP için veri boyutu ve depolama sınırı
Bellek İçi OLTP, kullanıcı verilerini depolamak için kullanılan bellek için iyileştirilmiş tablolar içerir. Bu tablolar belleğe sığmak için gereklidir. Her hizmet hedefi, bellek içi OLTP depolama olarak bilinen, bellek için iyileştirilmiş tablolar için bir bellek kotasına veya üst sınırına sahiptir.
Desteklenen her tek veritabanı hizmet hedefi ve her elastik havuz hizmeti hedefi belirli miktarda Bellek İçi OLTP depolama alanı içerir:
- DTU tabanlı kaynak sınırları - tek veritabanı
- DTU tabanlı kaynak sınırları - elastik havuzlar
- vCPU tabanlı kaynak sınırları - tekli veritabanları
- Sanal çekirdek tabanlı kaynak sınırları - elastik havuzlar
Aşağıdaki öğeler Bellek İçi OLTP depolama sınırınıza doğru sayılır:
- Bellek için iyileştirilmiş tablolarda ve tablo değişkenlerinde etkin kullanıcı veri satırları. Eski satır sürümleri, sınır hesaplamasına dahil edilmez.
- Bellek iyileştirmeli tablolardaki dizinler.
- ALTER TABLE işlemlerinin operasyonel yükü.
Büyük harfe bastığınızda kota aşımı hatası alırsınız ve artık veri ekleyemez veya güncelleştiremezsiniz. Bu hatayı azaltmak için verileri silin veya veritabanının veya elastik havuzun hizmet hedefini artırın.
Bellek İçi OLTP depolama kullanımını izleme ve neredeyse sınırı aştığınızda uyarıları yapılandırma hakkında ayrıntılı bilgi için bkz . Bellek İçi OLTP depolama alanını izleme.
Elastik havuzlar hakkında
Elastik havuzlarla, Bellek İçi OLTP depolama alanı havuzdaki tüm veritabanları arasında paylaşılır. Bu nedenle, bir veritabanındaki kullanım diğer veritabanlarını etkileyebilir. Bunun için iki azaltma:
-
Max eDTU
veyaMax vCore
, havuzun toplam eDTU veya sanal çekirdek sayısından daha düşük olan veritabanları için yapılandırın. Bu üst sınır, havuzdaki herhangi bir veritabanındaki Bellek İçi OLTP depolama kullanımını da orantılı olarak sınırlar. - 0'dan büyük bir
Min eDTU
veyaMin vCore
yapılandırın. Bu minimum, havuzdaki her veritabanının yapılandırılanMin eDTU
veyaMin vCore
öğesine karşılık gelen kullanılabilir Bellek İçi OLTP depolama alanına sahip olmasını garanti eder.
Bellek İçi OLTP teknolojilerini kullanan veritabanlarının hizmet katmanlarını değiştirme
Bellek İçi OLTP, Azure SQL Veritabanı Genel Amaçlı, Standart ve Temel hizmet katmanlarında desteklenmez. Bu nedenle, In-Memory OLTP nesneleri olan bir veritabanını bu katmanlardan birine ölçeklendirmek veya geri yüklemek mümkün değildir. Veritabanını bu hizmet katmanlarından birine ölçeklendirmek istiyorsanız, bellek için iyileştirilmiş tüm tabloları ve tablo türlerinin yanı sıra yerel olarak derlenmiş tüm T-SQL modüllerini kaldırın veya bunları disk tabanlı nesnelere ve normal T-SQL modüllerine dönüştürün.
bir İş Açısından Kritik veya Premium veritabanının ölçeğini azalttığınızda, bellek için iyileştirilmiş tablolardaki verilerin veritabanının veya elastik havuzun hedef hizmet hedefinde bulunan Bellek İçi OLTP depolama alanına sığması gerekir. Veritabanının veya elastik havuzun ölçeğini azaltmaya veya veritabanını elastik havuza taşımaya çalışırsanız ve hedef hizmet hedefinde yeterli bellek içi OLTP depolama alanı yoksa işlem başarısız olur.
Bellek İçi OLTP nesnelerinin mevcut olup olmadığını belirleme
Belirli bir veritabanının Bellek İçi OLTP'yi destekleyip desteklemediğini bulmanın programlı bir yolu vardır. Aşağıdaki Transact-SQL sorgusunu yürütebilirsiniz:
SELECT DATABASEPROPERTYEX(DB_NAME(), 'IsXTPSupported');
Sorgu döndürürse 1
, bu veritabanında Bellek İçi OLTP desteklenir.
Aşağıdaki sorgular, veritabanının Hiper Ölçek, Genel Amaçlı, Standart veya Temel hizmet katmanına ölçeklendirilebilmesi için önce kaldırılması gereken tüm nesneleri tanımlar:
SELECT * FROM sys.tables WHERE is_memory_optimized = 1;
SELECT * FROM sys.table_types WHERE is_memory_optimized = 1;
SELECT * FROM sys.sql_modules WHERE uses_native_compilation = 1;
In-Memory OLTP nesneleriyle veritabanını geri yükleme
Bir veritabanında In-Memory OLTP nesneleri oluşturduysanız ve veritabanını geri yüklemekistiyorsanız, geri yüklenen veritabanı için İş Açısından Kritik veya Premium hizmet katmanlarını kullanmanız gerekir. Bu, tüm In-Memory OLTP nesnelerini geri yükleme zamanından önce silseniz bile geçerlidir.
Tüm In-Memory OLTP nesneleri silindikten sonra veritabanının gelecekteki otomatik yedeklemelerini diğer hizmet katmanlarında geri yüklenebilir hale getirmek için şu yordamı izleyin:
- Veritabanını Genel Amaçlı, Standart veya Temel hizmet katmanına ölçeklendirin.
- Gerekirse veritabanını yeniden İş Açısından Kritik veya Premium hizmet katmanına veya Hiper Ölçek hizmet katmanına ölçeklendirin.
Bellek içi sütun deposu
Bellek içi columnstore teknolojisi, tablolarda büyük miktarda veri depolamanıza ve sorgulamanıza olanak tanır. Columnstore teknolojisi, geleneksel satır odaklı depolamaya göre OLAP iş yüklerinde 10 kata kadar sorgu performansı elde etmek için sütun tabanlı veri depolama biçimini ve toplu sorgu işlemeyi kullanır. Ayrıca sıkıştırılmamış veri boyutuna göre 10 kata kadar veri sıkıştırma kazancı elde edebilirsiniz.
Verilerinizi düzenlemek için kullanabileceğiniz iki tür columnstore dizini vardır:
- Tablodaki tüm verilerin sütun biçiminde düzenlendiği kümelenmiş sütun deposu . Bu dizin türünde, tablodaki tüm satırlar verileri yüksek oranda sıkıştıran ve tabloda hızlı analiz sorguları ve raporları yürütmenizi sağlayan sütun biçiminde yerleştirilir. Verilerinizin doğasına bağlı olarak, verilerinizin boyutu 10x-100x azaltılabilir. Kümelenmiş columnstore dizinleri, 100.000 satırdan büyük veri yığınları diskte depolanmadan önce sıkıştırıldığından, büyük miktardaki verinin (toplu yükleme) hızlı şekilde alınmasını da sağlar. Bu dizin türü, klasik veri ambarı senaryoları için iyi bir seçimdir.
- Verilerin geleneksel satır deposu tablosunda depolandığı ve analitik sorgular için kullanılan columnstore biçiminde ek bir dizinin bulunduğu kümelenmemiş columnstore. Bu dizin türü Karma İşlem Analizi İşlemeyi (HTAP) etkinleştirir: İşlemsel iş yükünde hızlı gerçek zamanlı analiz çalıştırma özelliği. OLTP sorguları küçük bir satır kümesine erişmek için iyileştirilmiş rowstore tablosunda yürütülürken, OLAP sorguları taramalar ve analizler için daha iyi bir seçim olan columnstore dizininde yürütülür. Sorgu iyileştiricisi, sorguyu temel alan satır deposu veya sütun deposu biçimini dinamik olarak seçer. Özgün veri kümesi herhangi bir değişiklik yapılmadan özgün satır deposu tablosunda tutulduğundan, kümelenmemiş columnstore dizinleri verilerin boyutunu küçültmez. Ancak, ek columnstore dizininin boyutu, eşdeğer B ağacı dizininden kat kat daha küçüktür.
Not
Bellek içi columnstore teknolojisi yalnızca bellekte işleme için gereken verileri tutarken, belleğe sığamayan veriler diskte depolanır. Bu nedenle, columnstore yapılarındaki veri miktarı kullanılabilir bellek miktarını aşabilir.
Columnstore dizinleri için veri boyutu ve depolama
Columnstore dizinlerinin belleğe tam olarak sığması gerekmez. Bu nedenle, dizinlerin boyutuyla ilgili tek büyük boyut, DTU tabanlı satın alma modeli ve sanal çekirdek tabanlı satın alma modeli makalelerinde belgelenen maksimum genel veritabanı boyutudur.
Kümelenmiş columnstore dizinlerini kullandığınızda, temel tablo depolaması için sütunlu sıkıştırma kullanılır. Bu sıkıştırma, kullanıcı verilerinizin depolama ayak izini önemli ölçüde azaltabilir ve bu da veritabanına daha fazla veri sığdırabileceğiniz anlamına gelir. Sütunlu arşiv sıkıştırma ile sıkıştırma oranı daha da artırılabilir. Elde edebileceğiniz sıkıştırma miktarı verilerin doğasına bağlıdır, ancak 10 kat sıkıştırma elde etmek nadir değildir.
Örneğin, boyutu en fazla 1 terabayt (TB) olan bir veritabanınız varsa ve columnstore dizinlerini kullanarak sıkıştırmanın 10 katını elde ediyorsanız, veritabanına toplam 10 TB kullanıcı verisi sığdırabilirsiniz.
Kümelenmemiş columnstore dizinlerini kullandığınızda, temel tablo hala geleneksel satır deposu biçiminde depolanır. Bu nedenle, depolama tasarrufları kümelenmiş columnstore dizinleri kadar önemli değildir. Ancak, birçok geleneksel kümelenmemiş dizini tek bir sütun deposu diziniyle değiştiriyorsanız, tablonun depolama ayak izinde genel bir tasarruf görmeye devam edebilirsiniz. Temel tablo için satır deposu veri sıkıştırmasını da kullanabilirsiniz.
columnstore dizinlerini içeren veritabanlarının hizmet katmanlarını değiştirme
DTU satın alma modelini kullanıyorsanız ve veritabanınız columnstore dizinleri içeriyorsa, veritabanınızı S3 hizmet hedefinin altına ölçeklendirirseniz uygulamanız çalışmayı durdurabilir. Columnstore dizinleri yalnızca Hiper Ölçek, İş Açısından Kritik ve Premium hizmet katmanlarında ve S3 ve üzeri kullanılıyorsa Standart hizmet katmanında desteklenir. Columnstore dizinleri Temel hizmet katmanında desteklenmez. Veritabanınızı desteklenmeyen bir hizmet katmanına veya hizmet hedefine ölçeklendirdiğinizde columnstore dizininiz kullanılamaz duruma gelir. DML deyimlerini yürütürken sistem dizini korur, ancak dizini hiçbir zaman kullanmaz. Daha sonra desteklenen bir hizmet katmanına veya hizmet hedefine geri ölçeklendirirseniz columnstore dizininiz hemen yeniden kullanılmaya hazırdır.
Kümelenmiş columnstore dizininiz varsa, veritabanı desteklenmeyen bir hizmet katmanına veya hizmet hedefine ölçeklendirilirse tablonun tamamı kullanılamaz duruma gelir. Ölçeklendirme işleminden önce tüm kümelenmiş sütun deposu dizinlerini silin ve yerine satır deposu kümelenmiş dizinler veya yığınlar oluşturun.
İlgili içerik
- Hızlı Başlangıç 1: Daha hızlı T-SQL Performansı için Bellek İçi OLTP Teknolojileri
- Mevcut bir Azure SQL uygulamasında Bellek İçi OLTP kullanma
- Bellek İçi OLTP'ye genel bakış ve kullanım senaryoları
- Bellek İçi OLTP depolama alanını izleme
- Azure SQL Veritabanı'de bellek içi örnek
- Blog: Azure SQL Veritabanı'da Bellek İçi OLTP
- Bellek İçi OLTP hakkında bilgi edinin
- columnstore dizinleri hakkında bilgi edinin
- Gerçek zamanlı operasyonel analiz hakkında bilgi edinin
- Teknik makale: Bellek İçi OLTP – SQL Server 2014'te Yaygın İş Yükü Desenleri ve Geçiş Konuları