Müzakirə

SQL Server Performans Scripti

Başladan Nikolem · 27 iyl 2026 05:40 · 1 Baxış · 0 Cavablar
Mövzunu Açan #0
SQL Server veritabanı yönetim sistemlerinin performansı, uygulamaların verimli çalışması için kritik öneme sahiptir. Veritabanı yöneticileri (DBA), sistemin sağlıklı çalışmasını sağlamak ve performans sorunlarını hızlı bir şekilde tespit etmek için belirli script'ler kullanır. Aşağıda, SQL Server performansını değerlendirmek için kullanılan bazı temel script'leri bulabilirsiniz.

1. Aktif Oturumları ve Bağlantıları Görüntüleme

Aşağıdaki script, veritabanında aktif olan oturumları ve bağlantıları görüntülemenizi sağlar. Bu, hangi kullanıcıların veya uygulamaların kaynakları kullandığını analiz etmenize yardımcı olur.

CODE
1234567891011
SELECT 
    session_id, 
    login_name, 
    status, 
    blocking_session_id, 
    wait_type, 
    wait_time, 
    wait_resource 
FROM sys.dm_exec_sessions 
WHERE is_user_process = 1;


2. Uzun Süreli Sorguları İzleme

Uzun süren sorgular, performans sorunlarına neden olabilir. Aşağıdaki script, son 5 dakikada çalışan ve 5 saniyeden fazla sürede tamamlanan sorguları listeleyecektir.

CODE
1234567891011121314151617
SELECT 
    TOP 10 
    qs.total_elapsed_time / 1000 AS [Total Elapsed Time (ms)],
    qs.execution_count AS [Execution Count],
    qs.total_elapsed_time / qs.execution_count / 1000 AS [Avg Elapsed Time (ms)],
    SUBSTRING(qt.text, (qs.statement_start_offset / 2) + 1, 
    ((CASE qs.statement_end_offset 
        WHEN -1 THEN DATALENGTH(qt.text) 
        ELSE qs.statement_end_offset END 
[list]
[*]qs.statement_start_offset) / 2) + 1) AS [Query Text]
[/list]
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE qs.total_elapsed_time / 1000 > 5000
ORDER BY [Total Elapsed Time (ms)] DESC;


3. İndeks Kullanımını İzleme

İndekslerin etkinliğini anlamak için aşağıdaki script kullanılabilir. Bu, hangi indekslerin kullanılmadığını ve hangi sorguların indeksleri kullandığını gösterir.

CODE
12345678910111213
SELECT 
    OBJECT_NAME(i.object_id) AS [Table Name], 
    i.name AS [Index Name], 
    s.user_seeks, 
    s.user_scans, 
    s.user_lookups, 
    s.user_updates 
FROM sys.indexes AS i
JOIN sys.dm_db_index_usage_stats AS s 
    ON i.object_id = s.object_id AND i.index_id = s.index_id
WHERE OBJECTPROPERTY(i.object_id, 'IsUserTable') = 1 
ORDER BY s.user_seeks DESC;


Bu script'ler, SQL Server performansını izlemek ve optimize etmek için ilk adımları atmanıza yardımcı olacaktır. Performans sorunlarını çözmek için belirli metrikleri ve göstergeleri takip etmek, sistemin genel sağlığını artıracaktır.

Cavab vermək üçün daxil olmalısınız.

0 sitat seçildi