The SQL Server Service Broker for the current database is not enabled, and as a result query notifications are not supported. Please enable the Service Broker for this database if you wish to use notifications hatası ve çözümü

Web sitenizde mssql db kullanıyor ve sitenize erişmeye çalıştığınızda The SQL Server Service Broker for the current database is not enabled, and as a result query notifications are not supported. Please enable the Service Broker for this database if you wish to use notifications hatasını görüyor iseniz sql sunucu tarafında yapmanız gereken bir işlem bulunmakta.

Mssql Management Studio u açınız.

İlgili database i bulunuz ve sağ tıklayıp properties ini açınız.

Sol menüden Options a geliniz.

Service Broker bölümünde Broker Enabled bölümünü true olarak set ediniz.

İşlem bu kadar.

Ayhan ARDA

The select permission was denied on the object hatası ve çözümü

The select permission was denied on the object hatası ve çözümü

Mssql de kullanıcının select yetkisi olmasına rağmen bu hatayı alıyor iseniz aşağıdaki yönergeleri takip edebilirsiniz.

Mssql Managemetn Studio ‘ yu açınız.

Security Tabından Logins bölümünü açınız.

Sorun yaşayan kullanıcıyı bulup üzerine sağ tıklayınız ve Properties i açınız.

User Mapping bölümüne geliniz ve yetkili olduğu Database i bulup üzerine 1 kez tıklayınız.

Aşağıda yetkilerini göreceksiniz.

Bu yetkiler arasındaki db_denydatareader ve db_denydatawriter tik lerini kaldırınız ve problemin düzelmediğini tekrar kontrol ediniz.

Ayhan ARDA

MSSQL Server’da “saving changes is not permitted the changes you have made require the following tables to be dropped” hatası

Mssql serverda mevcut tablomuzda değişiklik yapmak istediğimizde aşağıdaki hatayı alabiliriz , bunun sebebi sql server management studio nun tabloyu korumak için bizi kısıtlamasıdır.

saving changes is not permitted the changes you have made require the following tables to be dropped

Hatanın çözümü için sql server management studio da Tools menüsüne erişiniz , Designers bölümünde Table and Database Designers ısmında yer alan Prevent saving changes that require table re-creation ın yanındaki tik i kaldırınız , şimdi yapacağınız kaydetme işleminde hata almayacaksınız.

saving-changes-is-not-permitted

Ayhan ARDA

Exclusive access could not be obtained because the database is in use hatası

Veritabanınızı restore etmeye çalışırken bu hatayı alabilirsiniz , sebebi veritabanının o anda aktif olarak kullanılmasıdır.

Hatayı gidermek için Mssql Server Management Studio da Activity Monitor ü açınız.

mssql -activity-monitor

mssql -activity-monitor

Açılan ekranda database kolonuna geliniz ve ilgili db yi seçiniz , hemen alt kısımda aktif bağlantıları göreceksiniz.

Bunların üzerine sağ tıklayıp Kill Process e tıklayınız , bu işlemi bu db deki tüm aktif bağlantılar için yapınız.

mssql-kill-process

mssql-kill-process

Şimdi restore işlemini tekrar deneyebilirsiniz.

Ayhan ARDA

Mssql Uzak Erişimini Hızlıca Test Etmek

Mssql connection manager kullanmadan uzak mssql e bağlanıp veritabanımıza erişebiliyor muyuz erişemiyor muyuz sorusunun cevabı için aşağıdaki yöntemi uygulayabilirsiniz.

Öncelikle masa üstümüzde bir test.txt isimli dosya yaratalım , sonra dosyanın uzantısını .udl olarak değiştirelim , eğer bu işlemi yapmakta sorun yaşar iseniz muhtemelen bilindik dosya adlarını otomatik olarak gizle seçeneğiniz aktiftir , herhangi bir klasörün view properties menüsünden yapabilirsiniz.

Oluşturduğumuz test.udl dosyasını özelliklerine girip connection tab ını açalım.

Select or enter a server name bölümüne mssql sunucunun ip adresini ya da hostname ini girelim.

Use a specific user name and password bölümünde User name kısmına Size iletilen mssql kullanıcı adınızı girelim , passwprd bölümüne ise şifrenizi girelim.

Eğer buraya kadar bilgiler doğru ve mssql server erişilebilir ise Select the database file as a database name bölümünün üzerine geldiğinizde erişebildiğiniz veritabanı adlarını görebiliyor olacaksınız , işte hepsi bu kadar. Görebiliyorsanız uzak erişim sorunsuzdur.

mssql1mssql2

mssql3mssql4Test remote SQL connectivity EASILY!

MsSql Server Performans Testi Sorgusu

Aşağıdaki query yi management studio ile çalıştırarak sql sunucunuzun sorgulara cevap verme süresini ölçebilirsiniz.

DECLARE @Loops INT SET @Loops = 1
DECLARE @CPU INT SET @CPU = @@CPU_BUSY
DECLARE @StartDate DATETIME SET @StartDate = GETDATE()
 
WHILE @Loops <= 1000000
BEGIN
    IF COALESCE('123', '456') = '456' 
            PRINT 1
    SET @Loops = @Loops + 1  
END
 
PRINT 'COALESCE, both non-NULL'
PRINT 'Total CPU time: ' + CONVERT(varchar, @@CPU_BUSY - @CPU) 
PRINT 'Total milliseconds: ' + CONVERT(varchar, DATEDIFF(ms, @StartDate, GETDATE()))
PRINT ''  
GO
 
--==================================================
 
DECLARE @Loops INT SET @Loops = 1
DECLARE @CPU INT SET @CPU = @@CPU_BUSY
DECLARE @StartDate DATETIME SET @StartDate = GETDATE()
 
WHILE @Loops <= 1000000
BEGIN  
    IF ISNULL('123', '456') = '456'
            PRINT 1  
    SET @Loops = @Loops + 1
END
 
PRINT 'ISNULL, both non-NULL'  
PRINT 'Total CPU time: ' + CONVERT(varchar, @@CPU_BUSY - @CPU)
PRINT 'Total milliseconds: ' + CONVERT(varchar, DATEDIFF(ms, @StartDate, GETDATE()))  
PRINT ''
GO

İşlem sonucunda aşağıdaki gibi bir değer almalısınız.

COALESCE, both non-NULL
Total CPU time: 30
Total milliseconds: 1110

ISNULL, both non-NULL
Total CPU time: 33
Total milliseconds: 1246

Ayhan ARDA