T-SQL etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
T-SQL etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

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ı' 

2020-10-26

TOP 50 Query Statement Order By Total Logical Reads

select top(50)
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

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

Çalıştırılan komut içeriğinden SQL Server job adını aşağıdaki kod ile bulabilirsiniz:

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?

SQL Server servisinin en son ne zaman başladığını aşağıdaki sorgu ile bulabilirsiniz:

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

Tüm kullanıcı veritabanlarındaki tüm tabloların KB olarak boyutunu  aşağıdaki T-SQL kod ile bulabilirsiniz:

2018-10-15

Tüm Kullanıcı Veritabanlarındaki sys.sql_modules Kod Satır Sayısını Bulma

Merhaba,

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?

Bir tabloda bulunan istatistiklerin en son ne zaman güncellendiğini ve ilgili istatistiğin hangi index yada alan üzerinde olduğunu aşağıdaki T-SQL ile bulabilirsiniz:

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?

Tempdb Veritabanında yer işgal eden işlemleri aşağıdaki T-SQL ile bulabilirsiniz.

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-17

Default Data ve Log Dizinlerini Değiştirdiğim Halde Neden Hala Eski Dizin Değerleri Gözüküyor?

SQL Server 2008 ve öncesi sürümlerde Server Properties->Database Settings de Database Default Locations'da Data ve Log dizinlerini değiştirdiğimizde ilgili ekranda da bu değişiklerini görüyorduk ve yine bir veritabanı oluşturmak istediğimizde default dizinler en son değiştirdiğimiz dizin olarak görülüyordu.

2015-07-10

Registry'den Database Default Location Değerlerini T-SQL İle Okuma

SQL Server ile ilgili tutulan registry kayıtlarının değerini sunucuya bağlanmaya gerek kalmadan xp_instance_regread  extended stored procedure ile okuyabilirsiniz.

2015-06-26

AlwaysOn'da Backup'larınız Nerede Alınıyor?

AlwaysOn yapılandırılmış bir veritabanı sisteminde backup işlemlerinin şu an primary'den mi yoksa secondary'den mi alındığını aşağıda T-SQL ile öğrenebilirsiniz:

2015-06-25

Extended Events Dosyasını Okuma

Profiler ile yakaladığımız trace'lerin daha kapsamlı ve daha az eforla alınması için SQL Server 2008 ile birlikte Extended Events'ler geldi. Extended  Events ile topladığınız verileri dosyadan sys.fn_xe_file_target_read_file() fonksiyonu ile okuyabilirsiniz. Benim işime yarayan bazı değerleri aşağıdaki gibi aldım. Siz isterseniz ihtiyacınıza göre değiştirebilirsiniz.

2015-01-21

Database Restore İşleminin Ne Kadarı Bitti, Daha Ne Kadar Sürecek?

SQL Server'da başlattığınız bir database restore işleminin yüzde kaçının bittiğini, ne zaman başladığını, tahminen ne zaman biteceğini, ne kadar süre geçtiğini ve  daha ne kadar süreceğini  aşağıdaki T-SQL kod ile bulabilirsiniz:

2014-08-23

Tabloların Page Sayısını Bulma

Bir veritabanında bulunan tüm tabloların page sayılarını aşağıdaki T-SQL ile bulabilirsiniz:

2013-12-11

Partition Scheme Bulma

Veritabanızda bulunan tabloların ve indekslerin bulunduğu partition scheme'ya aşağıdaki T-SQL ile bulabilirsiniz:

2013-12-08

.::YASAL UYARI::.

©2004-2024 Mehmet GÜZEL, www.mehmetguzel.net

Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.