.:: Bir Veritabanı Yöneticisinin Notları ::.
#DBA #SQL #Server #Performance #Tuning
2022-02-09
Linked Server Kullanan Stored Procedure, View, Trigger, Function vs. Listesi
2022-01-07
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-07-28
Disk Block Size
2020-06-23
Sızma Teşebbüsünde SQL Server Error Log Mesajları
2020-03-05
Deprecated SQL Server Features
2020-02-19
Bir security gruba dahil olduğunuz halde o security grubun yetkilerini alamıyorsanız
- Kerberos ticket cache'ın bir süre sonra otomatik yenilenmesini(bu süre saatler olabilir) bekleyebilirsiniz.
- Oturumunuzu Logoff / Logon yaparak Kerberos ticket cache'ın yenilenmesini sağlayabilirsiniz.
- Komut satırından klist purge komutunu çalıştırarak Kerberos ticket cache'ı kendiniz temizleyebilirsiniz.
Ticket lerin detayını görmek için komut satırından klist tickets komutunu kullanabilirsiniz.
2020-02-07
SQL Server'ın yeni çıkan bir versiyonuna ne zaman geçmeliyim?
Eskiden SQL Server'ın yeni sürümüne geçiş için genellikle kararlılık açısından yeni versiyonun ilk SP'sinin çıkması beklenirdi fakat Microsoft, SQL Server 2017 sürümünden itibaren politika değişikliğine gidip SP çıkarmıyor sadece CU çıkarıyor ve ihtiyaç varsa GDR çıkarıyor. Bu yüzden eski alışkanlıkları değiştirmek gerekiyor.
Yeni versiyon için benim tavsiyem en azından ilk CU sonrası testlerinizi sağlıklı yaptıktan sonra üst sürüme geçiş yapabilirsiniz.
Microsoft'un 2017 yılındaki politika değişikliği ile ilgili ayrıntılı bilgiye ve bir çok sorunun cevabına
https://docs.microsoft.com/tr-tr/archive/blogs/sqlreleaseservices/announcing-the-modern-servicing-model-for-sql-server adresindeki dokümandan ulaşabilirsiniz.
SP: Service Pack
CU: Cumulative Update
GDR: General Distribution Release
.::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.