MSSQL Alwayson Sync Login
MSSQL Alwayson Sync Login
52 total views
MSSQL Alwayson Sync Login
52 total views
‘Legacy_Cardinality_Estimation’ is not a valid Database Scoped Configuration. (Microsoft.SqlServer.Smo) hatası ve çözümü
150 total views
Bir veritabanı içerisinde hangi tablolardan veri çekildiğini öğrenebilmemiz için indexlerden faydalanabiliriz.
İndexlerden ne zaman seek ,ne zaman scan yapıldığını bularak o tabloların en son ne zaman kullanıldığını bulabiliriz
140 total views, 1 views today
MSSQL de bazı durumlar da instance bazında, veritabanı bazında yetkileri görmek haricinde, hangi kullanıcının belirli bir veritabanında hangi yetkileri var , hangi tablolarda hangi kullanıcının yetkisi var, hangi obje de (stored procedure, view ,table ) görmek isteyebiliriz.
Böyle durumlar da aşağıdaki t-sql cümlesini kullanarak öğrenebilirsiniz.
160 total views
SQL Server bazen kullandığınız sürümün service pack upgrade’ni yapmak isteyebilirsiniz .Bunun için ilk olarak Microsoft’un sitesinden uygun olan service pack dosyasını seçmeniz gerekiyor. Burada dikkat etmeniz gereken konulardan birisi de bu işlem sırasında ufak KESİNTİ olacaktır.
157 total views
SQL Server’ın herhangi bir versiyonunu kurdunuz fakat servis accountunu değiştireceksiniz ya da port ya da herhangi bir şey fakat SQL SERVER Configuration Manager’ı search kısmında arattınız çıkmadı veya bilgisayarınızda farklı versiyon da SQL Server Kurulu ama sizin istediğiniz çıkmıyor bu durum biraz can sıkıcı olabiliyor.
156 total views
This secondary replica is not connected to the primary replica. The connected state is DISCONNECTED.
Yukarıdaki gibi bi hata alıyorsanız bunun sebebi Always On da kullandığınız endpointlerin farklı olmasındandır.
383 total views
Veritabanından silinen objeleri bulmak.
267 total views
MSSQL de Sessionlarınız uygulamadan gelen istekler yüzünden arttı ve bunu kontrol altında tutmak istiyorsunuz ya da belli bir sayıdan fazla session sayınızın artmasını istemiyorsanız aşağıdaki t-sql işinizi görecektir.
USE [msdb] GO BEGIN TRANSACTION DECLARE @ReturnCode INT SELECT @ReturnCode = 0 IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1) BEGIN EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback END DECLARE @jobId BINARY(16) EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'Session alert', @enabled=1, @notify_level_eventlog=0, @notify_level_email=0, @notify_level_netsend=0, @notify_level_page=0, @delete_level=0, @description=N'No description available.', @category_name=N'[Uncategorized (Local)]', @owner_login_name=N'sa', @job_id = @jobId OUTPUT IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'session_script', @step_id=1, @cmdexec_success_code=0, @on_success_action=1, @on_success_step_id=0, @on_fail_action=2, @on_fail_step_id=0, @retry_attempts=0, @retry_interval=0, @os_run_priority=0, @subsystem=N'TSQL', @command=N'declare @sessioncount int, @mail_gönderilecek_kisi nvarchar(max) =''farukerdemm@outlook.com.tr'',-- mail gönderilecek hesap @msj nvarchar(max) = (select @@SERVERNAME+'' instancenda belirtilen sayıdan fazla session bulunmaktadır.Gerekli Kontrolleri sağlarmısınız?''), @profle nvarchar(max) =(select name from msdb.dbo.sysmail_profile) set @sessioncount=( select count(*) from sys.dm_exec_sessions) if @sessioncount>100 --session sayısı begin EXEC msdb.dbo.sp_send_dbmail @profile_name =@profle, --profil adı @recipients = @mail_gönderilecek_kisi, @subject = ''Session Alert'', -- konu başlığı @body=@msj --Mail içeriği end ', @database_name=N'master', @flags=0 IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1 IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback COMMIT TRANSACTION GOTO EndSave QuitWithRollback: IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION EndSave: GO
358 total views, 2 views today
SQL Server da bazen performans iyileştirmeleri yaparken sorgulara göre index ekleriz ve sonradan bu indexlere baktığımızda bazılarının gereksiz bazılarının hiç kullanılmadığını görürüz.
Aşağıdaki script kullanılmayan indexleri bulmak için yardımcı olacaktır.
SELECT o.name AS ObjectName , i.name AS IndexName , i.index_id AS IndexID , dm_ius.user_seeks AS UserSeek , dm_ius.user_scans AS UserScans , dm_ius.user_lookups AS UserLookups , dm_ius.user_updates AS UserUpdates , p.TableRows , 'DROP INDEX ' + QUOTENAME(i.name) + ' ON ' + QUOTENAME(s.name) + '.' + QUOTENAME(OBJECT_NAME(dm_ius.OBJECT_ID)) AS 'drop statement' FROM sys.dm_db_index_usage_stats dm_ius INNER JOIN sys.indexes i ON i.index_id = dm_ius.index_id AND dm_ius.OBJECT_ID = i.OBJECT_ID INNER JOIN sys.objects o ON dm_ius.OBJECT_ID = o.OBJECT_ID INNER JOIN sys.schemas s ON o.schema_id = s.schema_id INNER JOIN (SELECT SUM(p.rows) TableRows, p.index_id, p.OBJECT_ID FROM sys.partitions p GROUP BY p.index_id, p.OBJECT_ID) p ON p.index_id = dm_ius.index_id AND dm_ius.OBJECT_ID = p.OBJECT_ID WHERE OBJECTPROPERTY(dm_ius.OBJECT_ID,'IsUserTable') = 1 AND dm_ius.database_id = DB_ID() AND i.type_desc = 'nonclustered' AND i.is_primary_key = 0 AND i.is_unique_constraint = 0 ORDER BY (dm_ius.user_seeks + dm_ius.user_scans + dm_ius.user_lookups) ASC GO
281 total views