Ana içeriğe atla

Powershell ile SQL Server Bilgisi Elde Etmek

Merhaba arkadaşlar,uzun bir süredir iş ve okul yoğunluğum nedeniyle yazamamıştım.  Powershell üzerine daha önceden bir birkaç yazım vardı.

Bkz :
  1. Powershell ile Cookie Temizliği
  2. Powershell ile Windows'ta Yüklü Programları Listelemek
  3. Powershell ile Windows Restart Kontrolü
Bu yazıda , powershell ile birlikte efektif olarak kullanılabilen başka bir Microsoft ürünü üzerinde çalışacağım. Powershell ve SQL Server'ı birlikte kullanmak Veritabanı Yöneticileri ve Sistem Mühendisleri için çok faydalı bir süreçtir. Bu meslek grubundaki insanların yapmış olduğu bir takım günlük işler ve orta ölçekli kontroller için Powershell kullanılabilir. Böylece ,günlük olarak yaptığımız işleri daha sürede tamamlamış olmaktayız.

Bugünki örnekte, Powershell kullanarak .txt dosyası içinde bulunan sunuculardaki SQL Server versiyonunu ve CPU Basıncını ölçen bir script bloğu göreceğiz.

Bunun için C:\ dizini altında HealthChecksV2 adında bir klasör oluşturdum ve altına Scripts isminde bir klasör oluşturarak içine Version.sql ve CPU_Pressure.sql scriptlerini yerleştirdim.

Daha sonrasında ise C:\HealthChecksV2 dizini altına DBList.txt ve Minichecks.ps1 scriptini koydum.

Bu işlemleri yaptıktan sonra, Powershell konsolunu açıp MiniCheck.ps1 scriptini çalıştırmak yeterli olacaktır. DBList.txt dosyasına istediğiniz sunucu ismini yazıp uzaktaki SQL Serverların da versiyonlarını öğrenebilirsiniz.(Network ve Credential'ları unutmayın:) )



MiniCheck Powershell Blok

foreach ($svr in get-content "C:\HealthChecksV2\DBList.txt")
    {
    Write-Host $svr -BackgroundColor Yellow -ForegroundColor Red
    
    $result = Invoke-Sqlcmd -ServerInstance $svr -InputFile C:\HealthChecksV2\Scripts\Version.sql
    $result | Format-Table
    
    
    $result = Invoke-Sqlcmd -ServerInstance $svr -InputFile C:\HealthChecksV2\Scripts\CPU_Pressure.sql
    $result | Format-Table
    
    }
    
 CPU Pressure SQL Blok

/********************************************************************
     Filename: CPU_Pressure.sql      
     Author:  https://technet.microsoft.com/en-us/magazine/dn383732.aspx           
     Date:  09/09/15        
     Comments: Calculates signal waits and resource waits as a 
        percentage of the overall wait time, in order to 
        diagnose potential CPU pressure.
     Revisions:            
    ********************************************************************/
    
    SET NOCOUNT ON;
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
    
    SELECT '% Signal (CPU) Waits' = CAST(100.0 * SUM(signal_wait_time_ms) / SUM (wait_time_ms) AS NUMERIC(20,2))
           ,'% Resource Waits' = CAST(100.0 * SUM(wait_time_ms - signal_wait_time_ms) / SUM (wait_time_ms) AS NUMERIC(20,2))
    FROM sys.dm_os_wait_stats;
    

Version SQL Blok

Select @@Version as Version
    

Yorumlar

Bu blogdaki popüler yayınlar

ASP.NET MVC ile Entity Framework Kullanımı 3(Sum-Average-Top)

Merhaba Arkadaşlar, ASP.NET MVC ile Entity Framework kullanımı yazılarımıza devam ediyoruz. Geçen yazılarımızda Select ve Insert işlemlerini tanıtmıştık kısaca. Bu yazımızda ise,Entity Framework ile daha profesyonel ve advanced select operasyonları üzerinde çalışmalar yapacağız. Veritabanı üzerinde,iş biriminin istekleri basit select sorgusu ile olmayabiliyor. Bizden çekilen verilerin toplanması,ortalanmasının alınması ve ilk "x" kayıdın çekilmesini talep edebiliyorlar. Bu nedenle bu hafta Entity Framework ile Select operasyonlarında gruplama,sıralama ve top konularını inceleyeceğiz. Entity Framework İle Sum Kullanımı Bazen elde edilen verilerden toplam operasyonu gerekmektedir. Bu tarz durumlarda,SUM özelliğini kullanmaktayız. İlk etapta, GetTotalRate isminde integer değer geri veren bir fonksiyon oluşturduk. Daha sonrasında ise ToplamRate isimli değişkenimize EmployeePayHistories tablosunda Rate alanlarının toplam değerini hesaplatıp sonucu atadık. En s...

ASP.NET MVC ile Entity Framewok Kullanımı 1

Merhaba Arkadaşlar, Bu yazımızda ASP.NET MVC Web Programlamada çok fazla kullanılan ve çok popüler bir paket olan Entity Framework paketini inceleyeceğiz. Entity Framework paketi, .NET altyapısı ile veritabanı programlama yapanlar için kullanımı kolay ve çok esnek bir pakettir. Entity Framework ile veritabanı üzerinde SELECT,INSERT,DELETE ve UPDATE gibi işlemleri yapabiliriz. Bunun yanında veritabanı üzerinde oluşturulmuş olan stored procedureleri çalıştırabiliriz. Peki progr amcılar neden Entity Framework tercih ediyor ? Performans, işlem çeşitliliği ve kodun okunurluğunun artması gibi sebeplerden ötürü tercih edilmektedir. Entity Framework paketini kullanmadan önce bu paketi projemize yüklemeliyiz. Bunun için Nuget Manager kullanarak yükleme işlemini yapmamız gerekiyor.  Projemizin seçeneneklerinde Manage Nuget Packages seçeneği ile paket yöneticisini açıyoruz(Resim 1). Daha sonrasında, Entity Framework kelimesini aratıyoruz ve install ediyoruz(Resim 2). Resim 1 ...

Python Değişkenler ve IF Kullanımı

Merhaba Arkadaşlar, Python Kurulumu işlemlerini tamamladıktan sonra artık python'da syntax kullanımı ve ufak çaplı modüler işlemler için hazırlıklar tamamlanmıştır. Python Kurulumu ve Bilgilendirme yazımızı kontrol etmediyseniz  https://selfarrival.blogspot.com.tr/2017/09/python-kullanm-avantajlar-ve-dogru.html   bu linke göz atabilirsiniz. Programlama dillerinde ilk aşamalar olarak, ilgili dilin syntax'ını kavramak amacıyla, temel programalama komutlarını yeni öğrenenilecek yazılım dilinde küçük örneklerle birlikte kullanılmaktadır. Bu yazımızda python üzerinde bu işlemler yapılacaktır. Python Değişkenler Python'da özel olarak bir değişken tipi tanımlanmaz. Yani birçoğumuzun alışık olduğu değişken tanımala tipinden farklıdır.  #Variables kısmında olduğu gibi değişken adı ve ilk etapta initialize edilecek value tanımlanmaktadır. #Variables PYTHON ile float ve integer tipindeki değişkenlerin toplanması ve ekrana bastırılması için gereken kod b...