본문 바로가기

분류 전체보기

관계(Relationship) 관계(Relationship)란 엔터티와 엔터티 사이의 관계를 말합니다. 즉, 우리가 관리하고자 하 는 업무 영역 내의 특정한 두 개의 엔터티 사이에 존재하는 많은 관계 중 특별히 우리가 관리 하고자 하는 직접적인 관계를 의미합니다. DA#에서 사용되는 주 관계 표기법은 Barker 이며 이는 보편적인 모델링 notation으로 오 라클 toolset에서 지원 및 모든 데이터 모델링에 적합한 형태를 지닌 관계입니다. 관계명을 표현하는 방법은 제3자 입장에서 표현하는 방법(관계명)과 당사자 입장에서 표현하는 방법 (관계동사)이 있습니다. 더보기
group by + limit 의 성능 이슈 테스트 데이터 생성(테이블 생성 + 벌크 데이터) CREATE TABLE public.test2m ( id serial primary key, timeslice timestamp , system_idVARCHAR(100), group_idVARCHAR(100), agent_nameVARCHAR(100), svc_nameVARCHAR(100), COUNTINT ); INSERT INTO public.test2m (timeslice, system_id, group_id, agent_name, svc_name, COUNT) SELECT now() as timeslice, LEFT(md5(random()::text),3) as system_id, LEFT(md5(random()::text),5) as group.. 더보기
SQL Server JSON 함수(Transact-SQL) 기능Description ISJSON 문자열에 유효한 JSON이 포함되어 있는지 테스트합니다. JSON_VALUE JSON 문자열에서 스칼라 값을 추출합니다. JSON_QUERY JSON 문자열에서 개체 또는 배열을 추출합니다. JSON_MODIFY JSON 문자열의 속성 값을 업데이트하고 업데이트된 JSON 문자열을 반환합니다. JSON_PATH_EXISTS 지정된 SQL/JSON 경로가 입력 JSON 문자열에 있는지 여부를 테스트합니다. create table JSON_table ( seq int identity(1,1) , reg_date datetime , JSON nvarchar(1000) ) insert into JSON_table (reg_date,JSON) values (getdate(),.. 더보기
SQL Server 통계 Stream 생성 샘플 쿼리 DECLARE @Schema sysname, @Table sysname, @StatsName sysname, @IncludeStatsStream BIT, @StatsStream VARCHAR(MAX), @TwoPartQuotedName NVARCHAR(500); select @Schema = 'dbo', @Table = 'TEST1M', @StatsName = 'PK_TEST1M', @IncludeStatsStream = 1; select @TwoPartQuotedName = QUOTENAME(@Schema) + '.' + QUOTENAME(@Table); IF @IncludeStatsStream = 1 AND @@MICROSOFTVERSION/ POWER(2,24) > 9 BEGIN DECLARE @S.. 더보기
JSON Insert Update Create Index MSSQL 에서 JSON 데이터를 수정하는 방법입니다. DROP TABLE dbo.Logs create table dbo.Logs ( _id bigint primary key identity, log nvarchar(max), dumy1 AS JSON_VALUE(log, '$.DUMY2'), index ix_severity (dumy1) ); /* 경고! 비클러스터형 인덱스에 대한 최대 키 길이는 1700바이트입니다. 인덱스 'ix_severity'의 최대 길이는 8000바이트입니다. 큰 값을 조합한 일부 경우에는 삽입/업데이트 작업을 수행할 수 없습니다. */ DECLARE @vJson AS NVARCHAR(MAX) SET @vJson = (SELECT top 100000 * FROM TEST1M FO.. 더보기
dmv 에서 고부하 쿼리 찾기 쿼리 실행시마다 실행 계획, 쿼리 등이 db 서버 메모리에 저장된다. 재기동 전까지 데이터는 누적되어 아래 쿼리로 고부하 쿼리가 어떤쿼리 인지 찾을수 있다. cpu 스파이크를 찾는건 불가능 하나, 단순하게 비용이 높은 쿼리는 조회 가능하다. SELECT object_name (b. objectid),R .cpu_time, S.host_name ,S. login_name, C. query_text,P .query_plan FROM sys .dm_exec_requests as r JOIN sys .dm_exec_sessions AS S ON S.session_id= R .session_id CROSS APPLY sys. dm_exec_sql_text( r.sql_handle ) AS B CROSS APPLY.. 더보기
SQL Server 테이블 정보 조회(sp_help / sp_column) 컬럼정도, 통계 , select 컬럼정보, 테이블별 사이즈 확인 가능합니다. sp_help 에 비해 축약된 필요한 정보만 노출합니다. 컬럼 정보를 제외하고 다른 항목은 text 창에 print 합니다. ALTER PROCEDURE [dbo].[sp_Table] ( @TableName varchar(50) ) AS SET NOCOUNT ON SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED SET @TableName = replace(replace(@TableName, char(13), ''), char(10), ''); SET @TableName = replace(@TableName, char(9), '') SET @TableName = RTRIM(LTRIM(@Tab.. 더보기
SQL Server 정규식(clr) 1. 정규식 사용할수 있게 설정 변경 XEC sp_configure 'show advanced options', 1 GO RECONFIGURE GO EXEC sp_configure 'clr enabled', 1 GO RECONFIGURE GO EXEC sp_configure 'clr strict security', 0 2. clr 등록 3. 샘플 코드(c# 정규식과 동일하게 사용 가능하다) select distinct dbo.fn_RegexGroup( ROUTINE_NAME,N'https?://(?([\w-]+\.)*[\w-]+)', N'server' ) from INFORMATION_SCHEMA.ROUTINES SELECT TOP 100 dbo.fn_RegexGroup( DUMY5, N'(?[a-zA-.. 더보기