Database/MSSQL(7)
-
[MSSQL] 테이블별 컬럼명 가져오기
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMNS = STUFF(( SELECT ',[' + n.COLUMN_NAME + ']' FROM AdventureWorks2019.INFORMATION_SCHEMA.columns n WHERE m.TABLE_SCHEMA = n.TABLE_SCHEMA AND m.TABLE_NAME = n.TABLE_NAME FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') FROM AdventureWorks2019.INFORMATION_SCHEMA.columns m WHERE m.TABLE_SCHEMA != 'dbo' group by TABLE_SCHEMA, TABLE_NAME ORDER BY m..
2021.10.26 -
JOSON 파일 테이블에 넣기
-- DROP TABLE #TEMP DECLARE @cnt INT -- 아이템 카운트 DECLARE @qry VARCHAR(MAX) DECLARE @i INT = 0 --1 . json파일을 #temp 테이블에 입력 SELECT BulkColumn INTO #TEMP FROM OPENROWSET (BULK 'D:\YOU.json', SINGLE_CLOB) as j; --2. items count SELECT @cnt= COUNT(Items.kind) FROM #TEMP CROSS APPLY OPENJSON (BulkColumn, N'$.items') WITH ( kind varchar(100)) AS items WHILE(@i < @cnt) BEGIN SET @qry = ' INSERT INTO YOUR..
2019.08.30 -
SQL BACKUP SCRIPT
USE MASTER GO IF OBJECT_ID('AP_DB_BACKUP') IS NULL EXEC ('CREATE PROC DBO.AP_DB_BACKUP AS SELECT 1 ') GO ALTER PROC [DBO].AP_DB_BACKUP @DBNAME VARCHAR(20) = 'MASTER' -- BACKUP TARGET DATABASE , @PATH VARCHAR(100) = 'C:\BACKUP\' -- OS BACKUP PATH , @BACKUP_TYPE VARCHAR(1) = 'F' -- F FULLBACKUP L LOGBACKUP D DIFFERENTIAL , @BEFORE_TARGET_TIME_HH INT = 2 -- DELETE FILE BEFORE TIME HH , @ENABLP_XP_C..
2019.03.25 -
LOOP INSERT 에서 명시적 트랜젝션으로 성능향상
--트랜젝션 미적용USE testGOIF object_id('tblx') is not nullDROP TABLE tblxGOCREATE TABLE tblx(idx INT, c1 CHAR(100))goDBCC SQLPERF ('SYS.DM_OS_WAIT_STATS',CLEAR);DECLARE @LOOPCNT INT = 1WHILE (@LOOPCNT INSERT INTO tblx VALUES(@LOOPCNT, 'A')SET @LOOPCNT += 1ENDSELECT * FROM SYS.DM_OS_WAIT_STATSWHERE WAIT_TYPE IN ('LOGMGR_QUEUE', 'WRITELOG');--트랜젝션 적용USE testGOIF object_id('tblx') is not nullDROP TABLE t..
2019.03.25 -
LAG 편차 쿼리
[테스트] 1. 테스트 환경 셋팅 -- 데이터베이스 생성 create database TESTDB use testdb go -- 임시 테이블 생성 -- drop table tab_01 create table Tab_01 ( seqNo int identity(1,1) , compareValue int default 0); go create clustered index idx_Tab_01_seqNo on Tab_01 (seqNo) go -- 20개의 compareValue 랜덤값을 가지는 데이터 입력 insert into tab_01 (compareValue) values (rand()*1000) go 20 -- 쿼리 성능 보기 위한 옵션 설정 set statistics io on set statistics..
2019.03.25 -
Lock 체크 (DMV)
-- 10분이상 들어오지 않은 Request 확인 SELECT st.session_id, datediff(minute, last_request_end_time, getdate()), text, last_read, last_write, getdate(), * from sys.dm_tran_session_transactions st inner join sys.dm_exec_sessions es on es.session_id = st.session_id inner join sys.dm_exec_connections ec on ec.session_id = es.session_id cross apply sys.dm_exec_sql_text(ec.most_recent_sql_handle) where datediff..
2019.03.22