Join etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Join 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ı' 

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.

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:

2013-01-15

Kullanılmayan Stored Procedure Bulma

SQL Server servisinin başlatıldığı tarihten bu yana kullanılmayan stored procedure'leri aşağıdaki sorgu ile bulabilirsiniz:

2013-01-12

Server Role Sahip Kullanıcıları Bulma

SQL Server'da herhangi bir server role(sysadmin, setupadmin, serveradmin, dbcreator, diskadmin, processadmin, securityadmin) sahip tüm kullanıcıları aşağıdaki sorgu ile bulabilirsiniz:


use master
go
select p.name,sp.name  
from sys.server_principals  p
inner join  sys.server_role_members  pr  on  p.principal_id= pr.member_principal_id
inner join sys.server_principals sp on pr.role_principal_id=sp.principal_id
where sp.type='R'


--SQL Server 2008 de test edildi.

2011-07-06

SQL ve Performans Üzerine

Bu gece twitter'da T-SQL Code Review da performans ile ilgili bir kaç hususu 160 karakter ile arzı endam eyledik, merak eden zevat bunları aşağıda bulabilir:

  • T-SQL de WHERE koşulları eşitsizlik üzerine kurulu geliştiriciye eşittir i aşılamak gerekir.Zira tuttuğu yolun eşiti çıkmaz.
  • Cross Joini Inner Joine dönüştüremeyen geliştiricinin tüm yolları CROSS dur, table/index SCAN dan bir türlü başını SEEK e çeviremez.
  • SELECT * ı alışkanlık haline getirmiş bir geliştirici Network u kendisine tahsis edilmiş Formula 1 pisti zanneder. Kodu trafiği alt üst eder!
  • İyi bir SQL ci az kod ile çok şey alabilendir; çok şey ile az kaynak tüketendir; veriyi disk yerine cache den okutabilendir.
  • Kodu ORDER BY a alışmış olan kişileri ORDER BY (hizaya çekmek) yapmak zordur.
  • Çok büyük kayıtlara sahip Temp Table kullanma hastalığına yakalanmış bir geliştiriciyi Physical Table Hastanesinde tedavi etmek gerekir.

.::YASAL UYARI::.

©2004-2023 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.