Database(11)
-
MySQL 잔존율 쿼리 (SP & Query)
CREATE TABLE CREATE TABLE `fact_retention` ( `stats_date` date NOT NULL, `date` date NOT NULL, `period` int NOT NULL, `age` int NOT NULL, `new_users` int DEFAULT NULL, `retained_users` int DEFAULT NULL, `retention` float DEFAULT NULL, PRIMARY KEY (`stats_date`,`date`,`period`,`age`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci 수집 CREATE PROCEDURE `db_canmore_statistics`.`us..
2022.08.30 -
[MySQL] Dummy Table 만들기
DROP DATABASE IF EXISTS db_test; CREATE DATABASE db_test; USE db_test; DROP PROCEDURE IF EXISTS usp_dummy_create; DELIMITER $$ CREATE PROCEDURE usp_dummy_create(IN table_cnt INT, IN rows_cnt INT) BEGIN DECLARE i INT; DECLARE j INT; SET i = 1; SET j = 1; WHILE i
2021.10.29 -
[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