Performans İçin T-SQL Çağrılarını Ayarlarken Neden Disk İşlemleri En Önemlidir?

Performans İçin T-SQL Çağrılarını Ayarlarken Neden Disk İşlemleri En Önemlidir? “Disk” Açıklaması “Disk” – farklı isimlere sahiptir. Bence bu, DBA küçük dünyasının dışındaki herkesin kafasını karıştırıyor. Bazı DBA’ların Disk dediği alternatif isimler : Storage I/O (girdi çıktı operasyonları) Disk operasyonları Veya basitçe “Reads” Bunların hepsi aynı anlama geliyor. SQL Server’ın Disk kaynağından istediği verileri almak için kaç Disk…

May 12, 2021 by Aryasoft IT

Performans İçin T-SQL Çağrılarını Ayarlarken Neden Disk

İşlemleri En Önemlidir?

“Disk” Açıklaması

“Disk” – farklı isimlere sahiptir. Bence bu, DBA küçük dünyasının dışındaki herkesin kafasını karıştırıyor. Bazı DBA’ların Disk dediği alternatif isimler :

  • Storage
  • I/O (girdi çıktı operasyonları)
  • Disk operasyonları
  • Veya basitçe “Reads”

Bunların hepsi aynı anlama geliyor. SQL Server’ın Disk kaynağından istediği verileri almak için kaç Disk işleminin gerekli olduğudur.

Disk kaynağında %95 SQL Server darboğazı.

SQL Server’ınızın ne kadar yüklü olduğu da önemli değil.

  • 5.000RPM yavaş hareket eden eski tarz sabit diskleriniz varsa – %95’i disk olacaktır.
  • Mini sürüm için başlangıç ​​fiyatının 100.000 ABD Doları olduğu, sınıfının en iyisi flash depolama dizilerini veya SAN’ları çalıştırıyorsanız, bunun %95’i disk olacaktır.

Disk, çoğu SQL Sunucusunun darboğaz yaptığı yerdir. Dönem.

Yani endişelenmemiz gereken CPU veya RAM değil, değil mi?

Bunun neden mantıklı olduğunu bilimsel olmayan açıklama yöntemim şu şekilde:

  1. Yavaş sorgular çok miktarda veriyi tarar (“oku” demenin süslü bir DBA yolu). Genellikle gereksiz yere. Bu, SQL sunucunuzun bu yavaş OKUMA işlemlerinin çoğunu yaptığı anlamına gelir.
  2. Henüz “okunan” verilerin bir yerde tutulması gerekir. Bu bir yerde RAM Belleğidir.
  3. Daha fazla veri “okundukça”, “eski” veriler RAM belleğinden çıkarılır (veya yeni veriler üzerine yazılır). RAM’deki kapasite sınırlıdır.
  4. SQL Server, veritabanı boyutunuzdan daha az RAM belleğine sahip olduğunda – ki bu çoğu zaman %100’dür – bu, TÜM verileri bellekte tutmak için yeterli RAM olmadığı anlamına gelir. Bu, bazı verilerin yavaş diskinde ve bazı verilerin hızlı RAM’de olduğu anlamına gelir. RAM’de olmayan verilerin diskten okunması gerekir ki bu SQL kutusunun yapabileceği en yavaş işlemidir. SÜPER YAVAŞ.
  5. Dolayısıyla, sorgu 10 satıra karşı 10 Milyon okuyacak şekilde değiştirilebilirse (ayarlanabilirse), bu, SQL Server’ın tüm bu satırları işlemek için yalnızca daha az disk işlemine değil, aynı zamanda daha az CPU ve RAM’e ihtiyaç duyduğu anlamına gelir. Bu nedenle, daha az diskten okuma yapmak çoğu zaman ANA hedeftir!
  6. Son kullanıcı için hiçbir şey hızdan (veya sorgunun süresinden) daha önemli değildir.
  7. CPU/RAM ve diğer kaynakları azaltmak için ayarlama yapmak da yararlıdır – ancak bu daha çok özel durumlarda olur. CPU’nuz sürekli olarak %90’a sabitlendiğinde veya bunun gibi veritabanı performansı tehlikede olduğunda CPU’yu ayarlarsınız.
  8. Sorgular daha az Disk işlemi gerektirecek şekilde ayarlandığında, SQL Server daha fazla kapasiteye sahip olur.  Bu nasıl mümkün olabilir?? Bir bakarsınız dört şeritli otoyolum var ve bütün şeritler hep meşgul. Arabaların %50’sini otoyoldan kaldırdığımızı varsayalım – bu otoyol ek şeride ihtiyaç duymadan daha uzun süre dayanır, değil mi? Yavaş SQL çağrılarını ayarlamakla aynı. Her sorguyu daha az kaynak tüketecek şekilde alırsam, fazladan kullanıcılar, fazladan sorgular ve fazladan büyüme için daha fazla yer açmış olurum.
  9. Bu, aynı sunucunun yükü iki veya üç katına çıkarabileceği anlamına gelir. Bu, aynı sunucunun ömrünü uzattığı anlamına gelir. Bu, donanım yükseltmelerinin geleceğe daha da ileriye itilebileceği anlamına gelir.

Çözüm

Artık biliyorsunuz. “BU SQL’İN YAVAŞ OLMASINA SEBEP OLAN CPU’DUR!” diyenlere inanmayın. Artık SQL Server’ların %95’inde, yani SQL Server hızınızı öldüren Depolama işlemleri olduğunu bileceksiniz. Ve CPU sadece gecikmeli bir göstergedir. Elbette %95’e ulaşabilir, ancak Depolama okumalarını 1MM’den 10’a düşürürsem, CPU kullanımlarınız düşecektir.

Size ve Veritabanlarınıza Yardımcı Olmak İçin Bekliyoruz!