SQL Database yavaş çalışıyor

 Ana Sayfa / / SQL Database yavaş çalışıyor

SQL Server Management Studio Database Listeleme çok yavaş çalışıyor. Peki bunun nedeni ne olabilir? Kesin çözümü :)

SQL kurulumunu yaptıktan bir süre sonra SQL Server Management Studio ile Database içindeki tablolarıma ulaşmak istediğimde Database (expanding) olarak abartısız 4-5 dakika bekliyordu. Üstelik sadece 80 adet veri tabanaı vardı. Yani milyonlarca değil. Araştırdığımda herkes RAM bozuk dedi. Ama Ram bozuk değildi. HDD bozuk diyan çıktı. Resource Monitör üzerinden HDD izlediğimde herşey normaldi. Sonra dedim ki millet bilmeden sallıyor. Bunun nedeni SQL ile alakalı. Çünkü Full database listesini Query çektiğimde anında gelen sorgu, Database'e çift tıkladığımda 4-5 dakikadan daha da uzun sürebiliyordu.

Araştırmaya karar verdim ve bunun nedeni, bazı veritabanlarının auto_close özelliğini açtığını belirledim. Bu, SQL sunucusunun Veritabanları düğümünde oluşturabilmesi için veritabanını başlatmasına neden olur ve auto_close için yapılandırılmış birkaç veritabanına sahip olduğunuzda önemli gecikme yaratır.

Hepsini bir kerede düzeltmenin hızlı bir yolu için bu sorguyu kullanın:  

USE MASTER
declare
    @isql varchar(2000),
    @dbname varchar(64)
 
    declare c1 cursor for select name from master..sysdatabases where name not in ('master','model','msdb','tempdb')
    open c1
    fetch next from c1 into @dbname
    While @@fetch_status <> -1
        begin
        select @isql = 'ALTER DATABASE @dbname SET AUTO_CLOSE OFF'
        select @isql = replace(@isql,'@dbname',@dbname)
        print @isql
        exec(@isql)
        select @isql = 'ALTER DATABASE @dbname SET RECOVERY SIMPLE'
        select @isql = replace(@isql,'@dbname',@dbname)
        print @isql
        exec(@isql)
        select @isql='USE @dbname checkpoint'
        select @isql = replace(@isql,'@dbname',@dbname)
        print @isql
        exec(@isql)
 
        fetch next from c1 into @dbname
        end
    close c1
    deallocate c1
Bu arada ben SQL Server Express nullanıyorum. Bu sorunu yaşadığımda bana SQL'in Express sürümü olduğu için Database Expanding çok yavaş diyen de oldu. Hatta Standart edition sürümünde bu sorunu yaşmayacağımı söylediler. O an bi durdum. Kimse 10 tane veri tabanı kullan diye herhalde EXPRESS diye bir sürüm geliştirmiş olamazdı. Bu sorun için değişik sürümlerde Management Studio denedim. En ilginci de SQL'i repair edin diyen makaleler oldu. Ne yazık ki yukarıda yazdıklarımın hiç biri Veri tabanı listesinin yavaş açılmasına bir çözüm değilken sadece "auto close" özelliği ayarını yapmak soruna kesin çözüm oldu.