frequently used

๋นˆ ํ–‰์œผ๋กœ ์ฑ„์šฐ๊ธฐ (์ถœ๋ ฅ๋ฌผ)

DECLARE @v_ordnum varchar(20) = '201811260004' -- 8๊ฑด

--# ์ž„์‹œ ํ…Œ์ด๋ธ” ๋ณ€์ˆ˜ ์ •์˜
DECLARE @tb_table Table
(
    idx int
    primary key (idx)
)

DECLARE	@v_total_count	int = 30, -- ํ•œ ํŽ˜์ด์ง€์— ์ตœ๋Œ€ ํ‘œํ˜„ํ•  ๋ฐ์ดํ„ฐ ๊ฑด ์ˆ˜
        @v_data_count	int = 0,  -- ์ƒ์„ธ ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ๊ฑด ์ˆ˜
        @v_temp_idx		int = 0

SELECT @v_data_count = COUNT(1) FROM sa110t WHERE ordnum = @v_ordnum

--# ํ‘œํ˜„ํ•  ํ–‰์˜ ์ˆ˜ ๋งŒํผ ํ…Œ์ด๋ธ” ๋ณ€์ˆ˜์— INSERT
WHILE (@v_total_count > @v_temp_idx)
BEGIN
    INSERT INTO @tb_table
    VALUES (@v_temp_idx + 1)
    SET @v_temp_idx = @v_temp_idx + 1
END


--# ์‹ค์ œ ๊ฒฐ๊ณผ
SELECT itemcd, itemnm, qty FROM sa110t WHERE ordnum = @v_ordnum

UNION ALL

SELECT '' as itemcd, '' as itemnm, 0 as qty 
FROM @tb_table B
--# ์œ„ ์ฟผ๋ฆฌ์™€ ๋™์ผํ•œ ๊ฒฐ๊ณผ์˜ COUNT๋ฅผ ์กฐ๊ฑด์œผ๋กœ ์‚ฌ์šฉ
WHERE idx <= (((@v_data_count / @v_total_count) + 1)  * @v_total_count) - @v_data_count

Database ONLINE/OFFLINE

-- ์˜คํ”„๋ผ์ธ 
ALTER DATABASE [DATABASE_NAME] SET OFFLINE WITH ROLLBACK IMMEDIATE

-- ์˜จ๋ผ์ธ
ALTER DATABASE [DATABASE_NAME] SET ONLINE

์ž„์‹œ ํ…Œ์ด๋ธ” ์‚ญ์ œ

  • ์ž„์‹œ ํ…Œ์ด๋ธ” ์„ ์–ธํ•˜๊ธฐ ์ „๊ณผ, BEGIN CATCH ๋ฌธ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ์ž‘์„ฑํ•˜์—ฌ ๋ฐฉ์–ด์ ์œผ๋กœ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑ

IF OBJECT_ID('tempdb..#์ž„์‹œํ…Œ์ด๋ธ”๋ช…') IS NOT NULL
    DROP TABLE #์ž„์‹œํ…Œ์ด๋ธ”๋ช…

DBCC SHRINKFILE

๋กœ๊ทธ ๋ฐ์ดํ„ฐ ์ •๋ฆฌ

use tempdb
--backup log tempdb WITH NO_LOG
dbcc shrinkfile (templog,0)
dbcc shrinkfile (tempdev,0)

๋กœ๊ทธ ์ •๋ฆฌ๊ฐ€ ๋˜์ง€ ์•Š์œผ๋ฉด ์•„๋ž˜ ์ฟผ๋ฆฌ ์‹คํ–‰ ํ›„ ์žฌ์‹œ๋„

--ํ”„๋กœ์‹œ์ € ์บ์‹œ

DBCC FREEPROCCACHE

GO



-- Buffer Pool์— ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ ํŽ˜์ด์ง€๋ฅผ ์ œ๊ฑฐ
DBCC DROPCLEANBUFFERS
GO

--์‚ฌ์šฉ ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ์บ์‹œ ์‚ญ์ œ
DBCC FREESYSTEMCACHE ('ALL')

--๋ถ„์‚ฐ ์ฟผ๋ฆฌ์—์„œ Microsoft SQL Server ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•ด ์‚ฌ์šฉํ•œ ๋ถ„์‚ฐ ์ฟผ๋ฆฌ ์—ฐ๊ฒฐ ์บ์‹œ๋ฅผ ํ”Œ๋Ÿฌ์‹œ 
DBCC FREESESSIONCACHE
GO

ํ”„๋กœ์‹œ์ €๋‚ด ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰

DECLARE @v_str varchar(100) = 'string'

SELECT TT.name
FROM (
		SELECT B.name
		FROM syscomments A, sysobjects B 
		WHERE A.id = B.id
		AND A.text LIKE '%' + @v_str + '%'
		GROUP BY B.name
) TT

ํ”„๋กœ์‹œ์ €์— ํฌํ•จ๋œ ํ…Œ์ด๋ธ”

DECLARE @v_procedure_name varchar(100) = '{ํ”„๋กœ์‹œ์ € ์ด๋ฆ„}'

SELECT	B.nameย ASย proc_name,
		C.nameย ASย table_name
FROMย sysdependsย A
		INNERย JOINย sysobjectsย Bย ONย A.idย =ย B.id
		INNERย JOINย sysobjectsย Cย ONย A.depidย =ย C.id
WHEREย B.xtypeย =ย 'P'
AND B.name = @v_procedure_name
GROUP BY B.name, C.name

IDENTITY

  • (on/off) : data insert

SET IDENTITY_INSERT [TABLE_NAME] ON

    INSERT INTO [TABLE_NAME]
            (    
                // ...
            )
    VALUES  (
                //...
            )

SET IDENTITY_INSERT [TABLE_NAME] OFF
  • check

-- DBCC CHECKIDENT([ํ…Œ์ด๋ธ”๋ช…], noreseed)

DBCC CHECKIDENT(tbl_test, noreseed)
  • initial

-- DBCC CHECKIDENT([ํ…Œ์ด๋ธ”๋ช…], reseed, [์ดˆ๊ธฐํ™” ์‹œํ‚ฌ ๊ฐ’])

DBCC CHECKIDENT(tbl_test, reseed, 0)

Service Broker

Enable/Disable

-- ํ™œ์„ฑํ™”
ALTER DATABASE MyDatabase
SET ENABLE_BROKER
WITH ROLLBACK IMMEDIATE
GO

-- ๋น„ํ™œ์„ฑํ™”
ALTER DATABASE MyDatabase
SET DISABLE_BROKER
WITH ROLLBACK IMMEDIATE
GO

-- ์ƒํƒœ ์กฐํšŒ
SELECT is_broker_enabled FROM sys.database WHERE name = 'MyDatabase'

ํŠน์ • ํ…Œ์ด๋ธ”์˜ ์—ฐ๋„๋ณ„ ์‹ค์ œ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ

  • @v_table_name : ํ…Œ์ด๋ธ” ์ด๋ฆ„

  • @v_date_field_name : ์ง‘๊ณ„ํ•  ๋‚ ์งœ ์œ ํ˜•์˜ ํ•„๋“œ๋ช…

DECLARE 
    @v_table_name        varchar(40) = 'SA100T',
    @v_date_field_name    varchar(40) = 'orddt',
    @v_query                nvarchar(MAX) = ''

SET @v_query = 'SELECT YEAR(CONVERT(datetime, ' + @v_date_field_name +')) AS YEAR, ' + char(13)

SELECT @v_query = @v_query + 'SUM(ISNULL(DATALENGTH(' + B.name + '),0)) +'  + char(13)
FROM sys.tables A, sys.columns B
WHERE A.object_id = B.object_id
AND A.name = @v_table_name
AND B.name <> @v_date_field_name
ORDER BY column_id

SET @v_query = SUBSTRING(@v_query, 0, LEN(@v_query) - 1)
SET @v_query = @v_query + ' FROM ' + @v_table_name + char(13) + 'WHERE ISNULL(' + @v_date_field_name + ', '''') <> ''''' + ' GROUP BY YEAR(CONVERT(datetime, ' + @v_date_field_name +'))'

EXEC (@v_query)

SQL Server CLR ํ†ตํ•ฉ

์–ด์…ˆ๋ธ”๋ฆฌ ๋“ฑ๋ก, ์Šค์นผ๋ผ ํ•จ์ˆ˜ ์ •์˜

USE master
EXEC sp_configure 'clr enabled', 1;
RECONFIGURE;
GO


ALTER DATABASE {database} SET trustworthy on


CREATE ASSEMBLY [GST.PlusWin6]
from 'D:\MSSQL\GST.PlusWin6.SqlFunction.dll'
WITH permission_set = unsafe
GO


CREATE FUNCTION [dbo].[EncryptAES256](@value1 [nvarchar](max), @value2 [nvarchar](max))
RETURNS [nvarchar](max) WITH EXECUTE AS CALLER
AS 
EXTERNAL NAME [GST.PlusWin6].[GST.PlusWin6.SqlFunction.Functions].[EncryptAES256]
GO

CREATE FUNCTION [dbo].DecryptAES256(@value1 [nvarchar](max), @value2 [nvarchar](max))
RETURNS [nvarchar](max) WITH EXECUTE AS CALLER
AS 
EXTERNAL NAME [GST.PlusWin6].[GST.PlusWin6.SqlFunction.Functions].DecryptAES256
GO

Last updated