SSD'nin ortaya çıkmasının veritabanı optimizasyonu için bir etkisi var mı?


26

Bugün, SQL Server optimizasyonu üzerine bir kitap okuyordum ve fikirlerin belirli bir miktarının doğrusal bir depolama modeline dayandığı görülüyordu. SSD'ler tamamen farklı bir depolama modeline sahip olduklarından, herhangi birinin herhangi bir şekilde veritabanını ayarlama veya optimizasyonu hakkında ne düşündüğü konusundaki oyunu değiştirdiler mi?


SSD'ler ile, aşınmayı en aza indirmek için ham performansı artırmaktan daha fazlasını optimize etmeniz gerekiyor gibi görünüyor ...
Trezoid

ilginç düşünce ve bazı güzel cevaplar, +1
Drew

Yanıtlar:


9

Evet, oyunu değiştiriyorlar. Dönen manyetik disklerin ( arama süresi ve dönme gecikmesi gibi ) özelliklerine dayalı optimizasyonlar , SSD sürücülerinde geçerli olmayabilir. FITME 2010'da yayınlanan yeni bir makale * , SSD'lerin özelliklerine dayalı yeni bir sorgu optimizasyon algoritması sunmaktadır.

Bununla birlikte, bu değişiklikler muhtemelen veritabanı geliştiricileri tarafından etkin bir şekilde uygulanabilecek düşük seviyeli değişiklikler olacaktır (örneğin, depolama ve alma algoritmalarında). Muhtemelen veritabanı kullanıcılarını o kadar fazla etkilemeyeceklerdir.

* IEEE Xplore - Flash tabanlı veritabanı için sütun odaklı bir depolama sorgusu optimizasyonu


3
Evet - ama çoğu veritabanı optimizasyonu, her şeyi sadece ram'e koyduğumuzda çoktan gitti. 64 Gb RaM bir SQL uzmanından daha ucuza geldiğinde, zaten SSD'nin buna ne kadar katkıda bulunduğundan emin değil
Martin Beckett

3
@ Martin kabul etti. Öte yandan, yakın zamanda dikey (canavarca $ 500k DB kutuları) ölçeklendirme yerine yatay (bulut, vb.) Yönünde karar verildi. Dağıtılmış sistemler, bu tür bir yerel doğrusal optimizasyondan küresel doğrusal olmayan performans geliştirmeleri elde edebilir. Bu, genellikle daha iyi bir maliyet modeli de olabilir.
Rein Henrich,

8

performans

SSD'ler performans sergiliyor: aramak zorunda değiller ve verim yakıcı. Disklerle ilgili çoğu yazılım, optimize edildikleri ölçüde, senkronize arama sayısını azaltmak için optimize edilmiştir. Bunu yaparken, karmaşıklıkların konaklarını tanıtırlar. Hızlı ve arama yapmayanların kalıcı depolamaya başlamasıyla birlikte, yeni veri depolama sistemleri artık bu tür karmaşıklıklar gerektirmeyecek.

dayanıklılık

SSD'ler şu anda yüksek başarısızlık oranlarına sahip. SSD'niz başarısız olacak. SSD'leriniz manyetik disklerden çok daha yüksek bir hızda başarısız olacaktır. Bu konuda çoğaltma, yedekleme vb. İle çalışmalısınız. Bu, kendi karmaşıklık kümesini sunar.


1
Um, ne? SSD'ler yüksek başarısızlık oranlarına sahip mi? SSD'ler için yıllık başarısızlık oranları HDD'lerden önemli ölçüde düşüktür. Şimdiye kadar çok az sayıda insan, özellikle daha gelişmiş kontrolörlerle (örneğin LSI'nin SandForce'u) SSD'lerde mevcut yazıları tüketmeyi başardı.
Mircea Chirea

5

Depo fiyatındaki genel düşüşün çok daha derin etkileri var.

SQL'e sahip olmadan önce, DBA'ların verinin izini ve silindir yerleşimini dikkatlice planlamak zorunda kaldıkları süper optimize edilmiş hiyerarşik ve ağ veritabanlarına sahip olduk.

SQL veritabanları çok daha az verimlidir. Ancak şimdi diskler ucuz, çok büyük ve hızlı, ancak umursamıyor.

NoSQL ("Document") veritabanları SQL'den biraz daha az verimli olabilir, çünkü SQL mantıksal şeması ile dosya veya tablo alanlarının altında yatan fiziksel şema veya her ne olursa olsun fiziksel olarak fiziksel eşleme yeteneği yoktur. Ve zar zor umursuyoruz.

SSD performans iyileştirmelerinin, NoSQL veritabanlarının kullanımından kaynaklanan değişikliklerde genel olarak sistemleri tasarlama şeklimizde kaybolması muhtemeldir.


2

SSD'ler için her şeyi en iyi duruma getirme konusundaki asıl mesele, veri yazma biçimiyle ilgili. Geleneksel bir sabit disk tipik olarak verileri yaklaşık 512 baytlık küçük sektörlerde depolar ve aslında sektörleri doğrudan bu seviyenin altında veya hatta altına yönlendirebilir.

SSD'lerin yazma konusunda bazı dezavantajları var:

  • 4-8KB civarında bir minimum blok yazma boyutu.
  • Yazma, yalnızca tipik olarak 256KB olan tam sayfa olarak gerçekleştirilebilir.
  • Sadece boş bloklara yazılabilir.

Yazma büyütmesi olarak adlandırılan tipik bir kabus senaryosu, kullanımda olan bazı blokların bulunduğu diskteki bir konuma tek bir bayt yazmak istediğinizde olabilir. Buraya yazmak için önce tüm 256KB sayfasını belleğe kopyalamanız, tüm bloğu silmek, sayfadaki tek baytı değiştirmek ve daha sonra değiştirilen 256KB sayfasını geri yazmak gerekir. Tek bir bayt yazmak için yaklaşık yarım megabaytlık "trafik" oldu!

SSD, denetleyici ve hatta işletim sistemi düzeyinde uygulanan bu sorun için pek çok optimizasyon vardır, ancak şüphesiz ki DBMS'ler bu optimizasyonları kendi özel çalışmalarına göre düzenleyerek yarar sağlayabilir.

Ancak bu, veritabanı kullanıcılarının (uygulamalarında bir veritabanı kullanarak olduğu gibi) düşünmesi gereken bir şey değildir, çünkü DBMS seviyesindeki tasarım / uygulama kararlarına oldukça bağlı olacaktır.


2

ServerFault blogundan topladıklarımdan itibaren , veritabanı sunucularının kabadayı bir donanıma sahip olması gerekiyor. Yığın değişim sitelerinin veritabanı sunucusu SSD'leri çalıştırıyor (bkz. Http://blog.serverfault.com/post/our-storage-decision/ ) ve sorgu optimizasyonunun hala çok gerekli olduğunu hayal ediyorum. CPU ve bellek , veritabanı sorgularından ve IO'dan etkilenir.

Ancak, veritabanı performansı IO'ya büyük ölçüde bağlıdır, bu yüzden SSD'ler kesinlikle yardımcı olacaktır.


1

Evet, herkesin belirttiği nedenlerden dolayı.

Oracle, SQL Server, vb. Gibi büyük RDBMS parçalarının, ayrımı doğru bir şekilde yapabiliyorlarsa "seçilmeye" başlayacağını söyleyen bir podcast dinliyordum. Bir SSD sürücüsü olup olmadığını tespit edin ve buna göre optimize edin.

Önbellekleme ve artık yazılması gerekmeyen verilerin yazılmasına eklenmiş birçok kod vardır.

Daha da ilginç olanı RAMSAN ve çeşitleridir. Temel olarak, X saatlik UPS'de yerleşik olan RAM yongalarından oluşan ve daha uzun vadeli HDD depolama alanına arka plan yazabilen bir sabit disk sürücüsü.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.