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:

create table #tmptable(DatabaseName sysname,SchemaName sysname, TableName sysname, RowCounts bigint, TotalSpaceKB bigint, UsedSpaceKB bigint, UnusedSpaceKB bigint)

exec sp_msforeachdb 'if db_id(''?'')>4 begin use [?]
insert into #tmptable
select
 db_name() as DatabaseName,
    s.Name as SchemaName,
    t.name as TableName,
    sum((CASE WHEN a.type =1  THEN p.rows  ELSE 0 END)) as RowCounts,
 sum(a.total_pages)*8,
 (sum(CASE WHEN a.type <> 1 THEN a.used_pages WHEN p.index_id < 2 THEN a.data_pages ELSE 0 END))*8 as TotalSpaceKB
from sys.tables t inner join sys.indexes i ON t.object_id = i.object_id
 inner join sys.partitions p ON i.object_id = p.object_id AND i.index_id = p.index_id
 inner join sys.allocation_units a ON p.partition_id = a.container_id
 inner join sys.schemas s ON t.schema_id = s.schema_id
where i.index_id in(0,1)
group by  s.Name,t.Name
end'

select top 100 * from #tmptable
order by TotalSpaceKB desc

drop table #tmptable

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:

declare @LineTotal table
(
  DatabaseName sysname,
  LineTotal bigint
)
insert into @LineTotal
exec sp_msforeachdb '
if db_id(''?'')>4
begin
use [?]
select ''?'' as DatabaseName,isnull(sum(len(definition) - len(replace(definition, char(10), ''''))),0)  as LineTotal
from    sys.sql_modules
end
'
select * from @LineTotal

2016-03-18

SCOM'da Alınan "SQL Agent Job discovery script 'SQLAgentJobDiscovery.vbs' for SQL instance" Hatası ve Çözümü

Alınan Hata:

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?

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

Çalıştırdığınız Bir Sorgu Bittiğinde Uyarı Sesinin Çıkması

Merhaba,
 
SSMS üzerinde çalıştırdığımız bazı sorgular uzun sürer ve bu süre içerisinde başka işlerle uğraşırız. Başlattığımız bir sorgunun bittiğini bir ses uyarısı ile alırsak güzel olur. Bunun için SSMS'da çalıştırdığınız bir sorgu bittiğinde Windows'un default sesinin çıkmasını isterseniz SSMS'da Tools  - > Options'dan aşağıdaki gibi ayarlabilirsiniz:
 

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

SQL Server 2012 Service Pack 3

Beklenen SQL Server 2012 Service Pack 3 yayınlandı. SQL Server 2012 Service Pack 3, 37 adet düzeltme içeriyor. SQL Server 2012 Service Pack 3, SQL Server 2012 Service Pack 2 den sonra çıkan CU1 ile CU9 arasındaki CU barındırıyor.

Benim için önemli olan düzeltmelerin listesi aşağıdır:

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

SQL Server 2016 CTP 2.1 İlk Bug!

SQL Server 2016 CTP 2.1 sürümünün ilk bug'ı Database Properties -> Compatibility level ile karşımıza çıkıyor: SQL Server 2016 yerine SQL Server 2015 yazıyor :)

.::YASAL UYARI::.

©2004-2019 Mehmet GÜZEL, http://www.mehmetguzel.net/ & http://www.mehmetguzel.com/

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