블로그 이미지
bedbmsguru

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
  • total
  • today
  • yesterday
2024. 3. 5. 13:44 카테고리 없음

https://engineering-skcc.github.io/ms%20sql%20server/SqlServer-SET-ARITHABORT/

 

[SQL Server]SSMS에서는 빠른데 화면에서는 느려요!

MS SQL SERVER SSMS에서는 빠른데 화면에서는 느려요!

engineering-skcc.github.io

 

posted by bedbmsguru
2024. 2. 3. 10:46 SQL SERVER

SELECT
      N'CREATE PARTITION FUNCTION ' 
    + QUOTENAME(pf.name)
    + N'(' + t.name  + N')'
    + N' AS RANGE ' 
    + CASE WHEN pf.boundary_value_on_right = 1 THEN N'RIGHT' ELSE N'LEFT' END
    + ' FOR VALUES('
    +
    (SELECT
        STUFF((SELECT
            N','
            + CASE
                  WHEN SQL_VARIANT_PROPERTY(r.value, 'BaseType') IN(N'char', N'varchar') 
                    THEN QUOTENAME(CAST(r.value AS nvarchar(4000)), '''')
                  WHEN SQL_VARIANT_PROPERTY(r.value, 'BaseType') IN(N'nchar', N'nvarchar') 
                    THEN N'N' + QUOTENAME(CAST(r.value AS nvarchar(4000)), '''')
                  WHEN SQL_VARIANT_PROPERTY(r.value, 'BaseType') = N'date' 
                    THEN QUOTENAME(FORMAT(CAST(r.value AS date), 'yyyy-MM-dd'),'''')
                  WHEN SQL_VARIANT_PROPERTY(r.value, 'BaseType') = N'datetime' 
                    THEN QUOTENAME(FORMAT(CAST(r.value AS datetime), 'yyyy-MM-ddTHH:mm:ss'),'''')
                  WHEN SQL_VARIANT_PROPERTY(r.value, 'BaseType') IN(N'datetime', N'smalldatetime') 
                    THEN QUOTENAME(FORMAT(CAST(r.value AS datetime), 'yyyy-MM-ddTHH:mm:ss.fff'),'''')
                  WHEN SQL_VARIANT_PROPERTY(r.value, 'BaseType') = N'datetime2' 
                    THEN QUOTENAME(FORMAT(CAST(r.value AS datetime2), 'yyyy-MM-ddTHH:mm:ss.fffffff'),'''')
                  WHEN SQL_VARIANT_PROPERTY(r.value, 'BaseType') = N'datetimeoffset' 
                    THEN QUOTENAME(FORMAT(CAST(r.value AS datetimeoffset), 'yyyy-MM-dd HH:mm:ss.fffffff K'),'''')
                  WHEN SQL_VARIANT_PROPERTY(r.value, 'BaseType') = N'time' 
                    THEN QUOTENAME(FORMAT(CAST(r.value AS time), 'hh\:mm\:ss\.fffffff'),'''') --'HH\:mm\:ss\.fffffff'
                  WHEN SQL_VARIANT_PROPERTY(r.value, 'BaseType') = N'uniqueidentifier' 
                    THEN QUOTENAME(CAST(r.value AS nvarchar(4000)), '''')
                  WHEN SQL_VARIANT_PROPERTY(r.value, 'BaseType') IN (N'binary', N'varbinary') 
                    THEN CONVERT(nvarchar(4000), r.value, 1)
                  ELSE CAST(r.value AS nvarchar(4000))
              END
    FROM sys.partition_range_values AS r
    WHERE pf.[function_id] = r.[function_id]
    FOR XML PATH(''), TYPE).value('.', 'nvarchar(MAX)'),1,1,N'')
    )
    + N');'
FROM sys.partition_functions pf
JOIN sys.partition_parameters AS pp ON
    pp.function_id = pf.function_id
JOIN sys.types AS t ON
    t.system_type_id = pp.system_type_id
    AND t.user_type_id = pp.user_type_id
WHERE pf.name = N'PF_Year';

 

https://dba.stackexchange.com/questions/171365/how-to-generate-the-creation-script-for-partition-function-and-partition-schema

'SQL SERVER' 카테고리의 다른 글

전체DB들의 LDF SIZE확인  (0) 2023.09.11
실행중인 SQL확인  (0) 2023.09.11
Agent Job 실패확인  (0) 2023.09.11
synonym의 base object 조회  (0) 2022.12.15
전체Table Size 확인  (0) 2022.11.08
posted by bedbmsguru
2023. 9. 11. 09:03 카테고리 없음

CREATE PROC usp_chk_long_run_query
AS
SET NOCOUNT ON;

SELECT COUNT(*) AS long_run_count
FROM sys.dm_exec_sessions AS s
JOIN sys.dm_exec_requests AS r ON r.session_id = s.session_id
CROSS APPLY sys.Dm_exec_sql_text(r.sql_handle) AS st
WHERE r.session_id != @@SPID
AND r.total_elapsed_time > (30 * 60 * 1000)
AND command NOT IN (
'BACKUP DATABASE'
,'KILLED/ROLLBACK'
)
AND DATEPART(HH, getdate()) BETWEEN 8 AND 20
AND DATEPART(WEEKDAY, GETDATE()) BETWEEN 2 AND 6
AND wait_type NOT IN('SP_SERVER_DIAGNOSTICS_SLEEP', 'OLEDB', 'TRACEWRITE')

posted by bedbmsguru
2023. 9. 11. 08:59 카테고리 없음

CREATE procedure usp_get_mdf_size 
@dbname varchar(100)
AS
SET NOCOUNT ON;
DECLARE @sql_statement AS nvarchar(4000)

IF @dbname IS NULL  OR @dbname = ''
BEGIN 
SET @dbname = DB_NAME()
END

IF @dbname = 'ALL'
BEGIN
set @sql_statement = 
'
create TABLE #tab1 (
DBname VARCHAR(500) 
,filegroupname VARCHAR(500) 
,logical_filename VARCHAR(500) 
,physical_filename VARCHAR(500) 
,max_size_mb DECIMAL
,current_size_mb DECIMAL
,Space_Used_MB DECIMAL
,Available_Space_MB DECIMAL
);
DECLARE @sql_statement AS nvarchar(4000)
set @sql_statement =
' +CHAR(39) + '
USE [?]
IF ' +CHAR(39) +CHAR(39)+ '?' +CHAR(39) +CHAR(39) + ' NOT IN ('+CHAR(39) +CHAR(39) + 'master'+CHAR(39) +CHAR(39) + ',' +CHAR(39) +CHAR(39)+ 'tempDB'+CHAR(39) +CHAR(39) + ',' +CHAR(39) + CHAR(39)+ 'model'+ CHAR(39) +CHAR(39) + ',' +CHAR(39) +CHAR(39)+ 'msdb' +CHAR(39) +CHAR(39) + ')
insert  #tab1 (DBname, filegroupname ,logical_filename, physical_filename, max_size_mb, current_size_mb ,Space_Used_MB, Available_Space_MB)
SELECT 
db_name() as dbname
,b.groupname AS ' + char(39) + char(39) + ' File_Group' + char(39) + char(39) + Char(13) +'
,Name as logical_name
,[Filename]
,CONVERT(DECIMAL(15, 2), ROUND(a.maxsize / 128.000, 2)) [MAX_SIZE_MB]
,CONVERT(DECIMAL(15, 2), ROUND(a.Size / 128.000, 2)) [CURRENT_SIZE_MB]
,CONVERT(DECIMAL(15, 2), ROUND(FILEPROPERTY(a.Name, '+ CHAR(39) + char(39) + 'SpaceUsed'+ CHAR(39) + char(39) + ') / 128.000, 2)) AS [Space_Used_MB]
,CONVERT(DECIMAL(15, 2), ROUND((a.maxsize - FILEPROPERTY(a.Name, '+CHAR(39)+ char(39) + 'SpaceUsed'+CHAR(39) + char(39) + ')) / 128.000, 2)) AS [Available_Space_MB]
FROM dbo.sysfiles a(NOLOCK)
JOIN sysfilegroups b(NOLOCK) ON a.groupid = b.groupid
' + CHAR(39) +'
EXEC sp_MSforeachdb @sql_statement
select DBname,case max_size_mb when 0 then '+ char(39) + '제한없음'+ char(39) +' else CAST (max_size_mb AS VARCHAR(50)) END [MAX_SIZE_MB]
,  current_size_mb 
,Space_Used_MB
, CASE WHEN Available_Space_MB  < 1 THEN '+ char(39) + '제한없음'+ char(39) +' else CAST (Available_Space_MB AS VARCHAR(50)) END Available_Space_MB
, case max_size_mb when 0 then  -1  else CONVERT(DECIMAL(15, 2), ROUND((Available_Space_MB / max_size_mb) * 100, 2)) END Available_percent
, filegroupname 
,logical_filename
, physical_filename
 from #tab1 
 WHERE DBname NOT IN(select name from sys.databases where is_read_only=1)
 order BY Available_percent 
drop table #tab1
'

END
ELSE
BEGIN 
set @sql_statement = 
'
USE ' + @dbname + Char(13) +'
SELECT 
 db_name() as dbname
,case a.maxsize when -1 then '+ char(39) + '제한없음'+ char(39) +' else CAST (CONVERT(DECIMAL(15, 2), ROUND(a.maxsize / 128.000, 2)) AS VARCHAR(50)) END [MAX_SIZE_MB]
,CONVERT(DECIMAL(15, 2), ROUND(a.Size / 128.000, 2)) [CURRENT_SIZE_MB]
,CONVERT(DECIMAL(15, 2), ROUND(FILEPROPERTY(a.Name, ' + char(39) + 'SpaceUsed' + char(39) + ') / 128.000, 2)) AS [Space_Used_MB]
,CASE WHEN a.maxsize < 1 THEN '+ char(39) + '제한없음'+ char(39) +' else CAST(CONVERT(DECIMAL(15, 2), ROUND((a.maxsize - FILEPROPERTY(a.Name, '+CHAR(39) + 'SpaceUsed'+CHAR(39) + ')) / 128.000, 2)) AS VARCHAR(50)) END AS [Available_Space_MB]
,CASE WHEN a.maxsize < 1 THEN 100 ELSE CONVERT(DECIMAL(15, 2), ROUND((((a.MAXSize - FILEPROPERTY(a.Name, '+CHAR(39) + 'SpaceUsed'+ CHAR(39) + ')) / 128.000) / (a.maxsize / 128.000)) * 100, 2)) END AS Available_percent
,b.groupname AS ' + char(39)  + ' File_Group'  + char(39) + Char(13) +'
,Name as logical_name
,[Filename]
FROM dbo.sysfiles a(NOLOCK)
JOIN sysfilegroups b(NOLOCK) ON a.groupid = b.groupid

END
EXECUTE sp_executesql @sql_statement
--PRINT @sql_statement

posted by bedbmsguru
2023. 9. 11. 08:59 SQL SERVER

create procedure usp_get_ldf_size
AS 
SET NOCOUNT ON;
SELECT name
,db.log_reuse_wait_desc
,format(ls.cntr_value / 1024, '#,###') AS size_mb
,lu.cntr_value / 1024 AS used_mb
,format(CAST(lu.cntr_value AS FLOAT) / CAST(ls.cntr_value AS FLOAT) * 100, '###0.##') AS used_percent
,CASE 
WHEN CAST(lu.cntr_value AS FLOAT) / CAST(ls.cntr_value AS FLOAT) > .5
THEN CASE 
/* tempdb special monitoring */
WHEN db.name = 'tempdb'
AND log_reuse_wait_desc NOT IN (
'CHECKPOINT'
,'NOTHING'
)
THEN 'WARNING'
/* all other databases, monitor foor the 50% fill case */
WHEN db.name <> 'tempdb'
THEN 'WARNING'
ELSE 'OK'
END
ELSE 'OK'
END AS log_status
FROM sys.databases db
JOIN sys.dm_os_performance_counters lu ON db.name = lu.instance_name
JOIN sys.dm_os_performance_counters ls ON db.name = ls.instance_name
WHERE lu.counter_name LIKE 'Log File(s) Used Size (KB)%'
AND ls.counter_name LIKE 'Log File(s) Size (KB)%'
ORDER BY name

'SQL SERVER' 카테고리의 다른 글

파티션 함수 소스 생성  (0) 2024.02.03
실행중인 SQL확인  (0) 2023.09.11
Agent Job 실패확인  (0) 2023.09.11
synonym의 base object 조회  (0) 2022.12.15
전체Table Size 확인  (0) 2022.11.08
posted by bedbmsguru
2023. 9. 11. 08:58 SQL SERVER

CREATE procedure usp_get_runsql 
as
SELECT TOP 1000 s.session_id,
           r.status,
    wt.wait_duration_ms,
            wt.wait_type,
           r.cpu_time,
           r.logical_reads,
           r.reads,
           r.writes,
           r.total_elapsed_time / (1000 * 60) 'Elaps M',
           DB_NAME(r.database_id) dbname,
           s.login_name,
    SUBSTRING(st.TEXT, (r.statement_start_offset / 2) + 1,
           ((CASE r.statement_end_offset
                WHEN -1 THEN DATALENGTH(st.TEXT)
                ELSE r.statement_end_offset
            END - r.statement_start_offset) / 2) + 1) AS statement_text,
           COALESCE(QUOTENAME(DB_NAME(st.dbid)) + N'.' + QUOTENAME(OBJECT_SCHEMA_NAME(st.objectid, st.dbid)) 
           + N'.' + QUOTENAME(OBJECT_NAME(st.objectid, st.dbid)), '') AS command_text,
           r.command,
   s.host_name,
           s.program_name,
           s.last_request_end_time,
   r.open_transaction_count,
           s.login_time
  
           
FROM sys.dm_exec_sessions AS s
JOIN sys.dm_exec_requests AS r ON r.session_id = s.session_id
 JOIN  sys.dm_os_waiting_tasks wt
 ON r.session_id = wt.session_id
 CROSS APPLY sys.Dm_exec_sql_text(r.sql_handle) AS st
WHERE r.session_id != @@SPID
ORDER BY r.cpu_time DESC

'SQL SERVER' 카테고리의 다른 글

파티션 함수 소스 생성  (0) 2024.02.03
전체DB들의 LDF SIZE확인  (0) 2023.09.11
Agent Job 실패확인  (0) 2023.09.11
synonym의 base object 조회  (0) 2022.12.15
전체Table Size 확인  (0) 2022.11.08
posted by bedbmsguru
2023. 9. 11. 08:58 SQL SERVER

CREATE procedure usp_errorjob
AS
SET NOCOUNT ON;
select B.name,
CASE
WHEN A.[run_date] IS NULL OR A.[run_time] IS NULL THEN NULL
 ELSE CAST(CAST(A.[run_date] AS CHAR(8)) + ' ' 
    + STUFF( STUFF(RIGHT('000000' + CAST(A.[run_time] AS VARCHAR(6)),  6)
  , 3, 0, ':') , 6, 0, ':') AS DATETIME)
 END AS [StartDateTime] ,
 STUFF(
            STUFF(RIGHT('000000' + CAST([A].[run_duration] AS VARCHAR(6)),  6)
                , 3, 0, ':')
            , 6, 0, ':') 
        AS [LastRunDuration (HH:MM:SS)],
CASE A.[run_status]
 WHEN 0 THEN 'Failed'
 WHEN 1 THEN 'Succeeded'
 WHEN 2 THEN 'Retry'
 WHEN 3 THEN 'Canceled'
 WHEN 4 THEN 'Running' -- In Progress
 END AS [RunStatus]
, A.message from 
[msdb].[dbo].[sysjobhistory] AS A
inner join  [msdb].[dbo].[sysjobs] B
ON A.job_id = B.job_id
where convert(datetime, cast(A.run_date as varchar(20)), 121) > getdate() -7--성공과 실행중인 JOB 제외
AND A.run_status NOT IN (1) 
AND B.enabled =1 --사용중인 JOB
AND name not like  '%ERRORLOG Cycling%' --원래 실패할 수 있기 때문에 이 작업은 뺀다.
order by [StartDateTime] DESC

'SQL SERVER' 카테고리의 다른 글

전체DB들의 LDF SIZE확인  (0) 2023.09.11
실행중인 SQL확인  (0) 2023.09.11
synonym의 base object 조회  (0) 2022.12.15
전체Table Size 확인  (0) 2022.11.08
SQL 실행횟수 모니터링  (0) 2022.03.15
posted by bedbmsguru
2023. 5. 9. 15:09 Zabbix

3.0을 사용하는데 현재 3.0이 지원 만료가 되어 agent 가 공식홈에서 찾을 수 없음

 

아래에 가서agent 다운로드 가능

 

https://repo.zabbix.com/zabbix/

 

'Zabbix' 카테고리의 다른 글

Zabbix5.0 With PostgreSQL  (0) 2021.06.01
Windows Zabbix Agent 설치  (0) 2019.05.30
Postgresql 모니터링  (0) 2019.02.19
Linux DISK IO 모니터링  (0) 2018.11.30
zabbix Agent 설치  (0) 2018.10.26
posted by bedbmsguru
2023. 3. 30. 13:29 카테고리 없음

GUI로 설치가 잘 안될때 Powershell로 설치

 

Install-WindowsFeature Net-Framework-Core -source E:\sources\sxs

posted by bedbmsguru
2022. 12. 15. 09:49 SQL SERVER

SELECT OBJECT_SCHEMA_NAME(s.object_id, DB_ID()) Schema_name
, s.name Table_name
, s.base_object_name 
, OBJECTPROPERTYEX(OBJECT_ID(s.[name]), 'BaseType') as BaseType
, ao.type_desc
FROM sys.synonyms s
JOIN (SELECT DISTINCT type, type_desc from sys.all_objects) ao on CONVERT(varchar(2),OBJECTPROPERTYEX(OBJECT_ID(s.[name]), 'BaseType')) = ao.type

 

https://codingsight.com/sql-server-synonyms/

'SQL SERVER' 카테고리의 다른 글

실행중인 SQL확인  (0) 2023.09.11
Agent Job 실패확인  (0) 2023.09.11
전체Table Size 확인  (0) 2022.11.08
SQL 실행횟수 모니터링  (0) 2022.03.15
DB 이관시 설정상태 체크, 변경  (0) 2022.02.07
posted by bedbmsguru