#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-03-05
Deprecated SQL Server Features
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
2018-10-15
Tüm Kullanıcı Veritabanlarındaki sys.sql_modules Kod Satır Sayısını Bulma
Tüm kullanıcı veritabanlarındaki procedure, replication-filter-procedure, view, trigger, function, inline table-valued function, table-valued-function satır sayısınını aşağıdaki T-SQL ile bulabilirsiniz:
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-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-06-29
Veritabanına Göre Transactions/sec Değeri Nedir?
2015-06-26
AlwaysOn'da Backup'larınız Nerede Alınıyor?
2015-01-21
Database Restore İşleminin Ne Kadarı Bitti, Daha Ne Kadar Sürecek?
2014-08-23
Tabloların Page Sayısını Bulma
2014-08-01
Sıkıştırılmış(Compressed) Tabloları ve Indeksleri Bulma
2013-12-11
Partition Scheme Bulma
2013-12-08
2013-01-15
Kullanılmayan Stored Procedure Bulma
2013-01-12
Server Role Sahip Kullanıcıları Bulma
.::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.