#DBA #SQL #Server #Performance #Tuning
2022-02-09
Linked Server Kullanan Stored Procedure, View, Trigger, Function vs. Listesi
2021-12-07
Bir Tablo Hangi SQL Modullerde Hangi Kolon Adları ile Nasıl Geçiyor?
Bir tablonun hangi kolonları hangi SP lerde select içerisinde mi update içerisinde mi geçiyor gibi sorunun cevabı için aşağıdaki T-SQL faydalı olabilir:
use [VeritabanıAdı]
go
select '['+ object_schema_name(p.object_id) + '].[' +object_name(p.object_id) + ']' as ProcedureName, re.referenced_minor_name as ColumnName,
re.is_selected,
re.is_updated
from sys.sql_modules p
cross apply sys.dm_sql_referenced_entities ( '['+ object_schema_name(p.object_id) + '].[' +object_name(p.object_id) + ']', 'OBJECT') re
where re.referenced_schema_name='Şema Adı' and re.referenced_entity_name='Tablo Adı'
2021-01-13
Aranılan Bir İfadenin Geçtiği Tüm Stored Procedure, View, Function, Trigger vs. Listesini Bulma
/*
Bir ifadenin hangi veritabanındaki, hangi stored procedure, view, function, trigger vs. gibi modüllerde geçtiğini aşağıdaki script ile bulabilirsiniz. Script veritabanı ve şemaadı.nesne adına göre liste döndürür.
*/
exec sp_msforeachdb '
use [?]
select ''?'' as DatabaseName,object_schema_name(object_id) + ''.'' + object_name(object_id)
from sys.sql_modules
where definition like ''%ARANILACAK İFADE%''
'
-- Script SQL Server 2017 ile test edildi.
2020-10-26
TOP 50 Query Statement Order By Total Logical Reads
object_schema_name(ps.object_id,ps.database_id) + '.' + object_name(ps.object_id,ps.database_id) as SpName,
replace(replace((substring(t.text, qs.statement_start_offset/2, (case when qs.statement_end_offset = -1 then len(t.text) * 2 else qs.statement_end_offset end - qs.statement_start_offset)/2)),char(10),' '), char(13),' ') as QueryStatement,
db_name(t.[dbid]) as DatabaseName,
qs.total_elapsed_time as TotalElapsedTime,
qs.total_logical_reads as TotalLogicalReads,
qs.min_logical_reads as MinLogicalReads,
qs.total_logical_reads/qs.execution_count as AvgLogicalReads,
qs.max_logical_reads as MaxLogicalReads,
qs.min_worker_time as MinWorkerTime,
qs.total_worker_time/qs.execution_count as AvgWorkerTime,
qs.max_worker_time as MaxWorkerTime,
qs.min_elapsed_time as MinElapsedTime,
qs.total_elapsed_time/qs.execution_count as AvgElapsedTime,
qs.max_elapsed_time as MaxElapsedTime,
qs.execution_count as ExecutionCount
,(case when convert(nvarchar(max), qp.query_plan) LIKE N'%<MissingIndexes>%' then 1 else 0 end) as HasMissingIndex
,qp.query_plan as QueryPlan
,qs.creation_time as QueryPlanCreationTime
,qs.last_execution_time as LastExecutionTime
from sys.dm_exec_query_stats as qs with (nolock)
left join sys.dm_exec_procedure_stats ps with (nolock) on qs.sql_handle=ps.sql_handle
cross apply sys.dm_exec_sql_text(qs.plan_handle) as t
cross apply sys.dm_exec_query_plan(qs.plan_handle) as qp
order by qs.total_logical_reads desc
2020-08-11
Database Log File Shrink Sonrası Write Latency Artışı, WRITELOG Waittype Artışı
2020-06-23
Sızma Teşebbüsünde SQL Server Error Log Mesajları
2020-03-05
Deprecated SQL Server Features
2020-01-22
SQL Server'da En Çok Karşılaşılan Bağlantı Hataları ve Çözümleri
- SSMS üzerinden veritabanı sunucusuna hiç erişemiyorum.
Alınan Genel Hata : A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
2020-01-14
Could not allocate space for object 'sys.sysfiles1'.'sysfiles1' in database 'VeritabanıAdı' because the 'FileGroupAdı' filegroup is full
"Could not allocate space for object 'sys.sysfiles1'.'sysfiles1' in database 'VeritabanıAdı' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup."
Çözüm:
İgili veritabanın birincil .mdf dosyasının
- Auto growth değeri disable ise enable yapabilirsiniz.
- Max size verilmiş ise unlimited yapabilirsiniz.
2019-12-08
Spotlight on SQL Server Uygulamasının SQL Scriptleri Nerede Tutuluyor?
C:\Program Files (x86)\Quest Software\Diagnostic Server\Agent\conf\Package\sqlserver_spotlight
2019-12-06
Tüm Login ve Tüm Windows Group Altındaki Tüm Loginlerin Listesini Alma
Bir instance altındaki tüm login'leri ve Windows group altındaki tüm kullanıcıların listesini aşağıdaki T-SQL bulabilirsiniz
*/
2019-11-28
Bir Kullanıcıyı Tüm Veritabanlarından Silmek
Bir kullanıcıyı bir instance altındaki tüm veritabanlarından silmek için aşağıdaki T-SQL script'i kullanabilirsiniz:
*/
2019-11-07
Çalıştırılan Komut İçeriğinden Job Adını Bulma
select j.name
from msdb.dbo.sysjobs j
inner join msdb.dbo.sysjobsteps js on j.job_id=js.job_id
where js.command like '%Aranılacak içerik%'
2019-07-31
SQL Server en son ne zaman start oldu?
SELECT sqlserver_start_time
FROM sys.dm_os_sys_info
2019-04-02
Tüm Kullanıcı Veritabanlarındaki Tüm Tabloların Boyutunu Bulma
2016-03-18
SCOM'da Alınan "SQL Agent Job discovery script 'SQLAgentJobDiscovery.vbs' for SQL instance" Hatası ve Çözümü
Alert: MSSQL 2014: Discovery failed
Source: SunucuIntanceNeme.DomainName.com
Path: SunucuIntanceNeme.DomainName.com
Last modified by: System
Last modified time: 3/17/2016 15:58:35 AM Alert description: Management Group: Management Grup 1. Script: SQLAgentJobDiscovery.vbs. Instance: MSSQLSERVER : SQL Agent Job discovery script 'SQLAgentJobDiscovery.vbs' for SQL instance 'MSSQLSERVER' failed.
2016-03-09
Tablodaki İstatistikler En Son Ne Zaman Güncellendi?
select
object_name(s.object_id) as TableName,
ic.name as ColumnName,
stats_date(s.object_id, s.stats_id) as StatisticsUpdate,
s.name as StatisticsName
from sys.stats s inner join sys.stats_columns sc on s.object_id=sc.object_id and s.stats_id=sc.stats_id
inner join sys.columns ic on ic.object_id=sc.object_id and ic.column_id=sc.column_id
where s.object_id=object_id(SchemaAdi.TabloAdi')
-- Yukarıdaki T-SQL SQL Server 2012/2014 sürümlerinde test edildi.
2016-02-29
Çalıştırdığınız Bir Sorgu Bittiğinde Uyarı Sesinin Çıkması
2016-02-24
Tempdb Veritabanını Ne Şişiriyor?
select ts.session_id,
sum(ts.internal_objects_alloc_page_count*8/1024) as task_internal_objects_alloc_page_mb,
st.text as sqltext,
sum(ts.internal_objects_alloc_page_count) as task_internal_objects_alloc_page_count,
sum(ts.internal_objects_dealloc_page_count) as task_internal_objects_dealloc_page_count
from sys.dm_db_task_space_usage ts inner join sys.dm_exec_requests er on ts.session_id=er.session_id
cross apply sys.dm_exec_sql_text(er.sql_handle) st
where internal_objects_alloc_page_count+ internal_objects_dealloc_page_count>0
group by ts.session_id,st.text
order by 2 desc
Not: T-SQL script SQL Server 2012/2014 versiyonlarında test edildi.
2015-11-24
SQL Server 2012 Service Pack 3
Benim için önemli olan düzeltmelerin listesi aşağıdır:
.::YASAL UYARI::.
Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.