SQL Server/SQL Server 기타

인메모리 테이블 테이블의 데이터를 메모리로 올려, 모든 데이터 조작을 메모리상에서만 하도록 하는 방식입니다. 디스크를 거치지 않기 때문에 매우 빠른 속도로 진행되지만, 모든 데이터가 메모리상에 있어야 하기 때문에 메모리 사용률이 증가합니다. 메모리의 데이터는 서버가 재부팅되는 경우 소실됩니다. 이렇게 메모리에만 데이터가 있어 유실되는 부분을 방지하기 위해 File Stream 이라는 기능을 통해 디스크에 데이터를 영구보관 합니다. ( 단, 이렇게 데이터를 영구보관하기 위해서는 테이블에 Primary Key 가 무조건 있어야 합니다. ) 인메모리 테이블 생성을 위한 선행조건 데이터베이스에 메모리 파일그룹 영역 생성 메모리에 최적화된 파일그룹을 생성해 줍니다. 이 파일그룹에 SCHEMA_AND_DATA 옵션..
Profiler 에 수집된 데이터가 있습니다. 이 Profiler 를 추적 테이블로 저장합니다. 적재할 서버에 연결을 해주고 적재할 DB 와 테이블이름을 정합니다. Profiler 하단에 적재가 진행되다가 완료되었다는 메시지로 변경되었습니다. 적재한 서버의 테이블을 조회하면 데이터가 적재된 것을 확인할 수 있습니다.
현상 다음 파일의 줄 끝에 일관성이 없습니다. 줄 끝을 정규화시키시겠습니까? 이런 대화창은 왜 나오는걸까? 원인 데이터에 줄바꿈(Enter)이 있고, 데이터를 넣고 추출하는 OS 가 다른경우에 발생하게 됩니다. 타 OS 에서 데이터를 넣고 추출하는 경우에 왜 이런 오류가 나올까요? 먼저 OS 마다 Enter 값을 저장하는 내부 값은 다릅니다. 운영체제 값 헥사 Windows CR LF (rn) 0x0D 0x0A Mac CR (r) 0x0D Unix LF (n) 0x0A 하나의 예를 보겠습니다. 리눅스 환경에서 Enter 값이 들어간 데이터를 한건 적재했습니다. 그렇게 되면 SQL Server 내부에는 0x0A 라는 값 하나만 저장되게 됩니다. 이 값을 Windows 환경에서 추출해서 확인하려고 하면, 0..
SET ROWCOUNT 는 한번 세션이 설정해 놓은 값에서 결과값을 계속 저장한다. 예를들면 SET ROWCOUNT 10 SELECT TOP 20 * FROM dbo.test 몇건이 출력될까? 10 건이다. docs.microsoft.com/en-us/sql/t-sql/queries/top-transact-sql?redirectedfrom=MSDN&view=sql-server-ver15
상황 회색선을 기준으로 설명하자면Batch Requests/sec 는 초당 800 정도로 증가하였습니다. 이 때 Lock Waits/sec, Lock Timeouts/sec 이 증가하였지만Average Wait Time(ms) 는 감소하였습니다. Lock Wait 이 발생하고 심지어 Timeout 까지 발생하는 상황에서 Average Wait Time 은 감소하는그래프가 의아하여 조사한 내용을 정리하였습니다. Lock Waits, Lock Time, Average Wait Time 의 의미Lock Waits/sec초당 대기 잠금을 나타냅니다.단순히 잠금이 대기했다 라는 것을 나타내는 것일 뿐, 이 잠금이 얼마동안 대기했다를 의미하는 것이 아닙니다. Lock Timeouts/secLock Timeouts ..
sp_MSForEachDB 란각 데이터베이스에 쿼리를 수행하는 역할로 'USE ?' 구문과 같이 사용됩니다. WITH RESULT SETS 이슈OPENROWSET 과 sp_MSForEachDB SP 를 함께 사용하게 되면 WITH RESULT SETS 구문이 필요한 경우가 있습니다.SP 에서 동적쿼리를 사용하게 되는 경우입니다. 사용하지 않는 경우 아래와 같은 오류가 발생합니다.해결을 위해서는 아래 쿼리를 참고해 주세요.메시지 11514, 수준 16, 상태 1, 프로시저 sys.sp_describe_first_result_set, 줄 1 [배치 시작 줄 0] 프로시저 'sp_MSforeachdb'의 문 'exec(@precommand)'에 동적 SQL이 있으므로 메타데이터를 확인할 수 없습니다. WITH..
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/7ef42395-0475-4820-969e-b7e7ab297974/recent-executed-queries-for-a-specific-database?forum=transactsql
Maintenance Plan 이란유지계획 으로, 패키지 같은 역할입니다.요즘에는 거의 쓰이지 않는 기능이긴 합니다. Export 하는 방법1. Integration Services 에 접속합니다. 2. Stored Packages -> MSDB -> Maintenance Plan 을 클릭합니다.3. 원하는 Maintenance Plans 를 우클릭 후 Export Package 를 클릭합니다. 4. File System 을 선택후 원하는 경로를 지정합니다.* Protection Level 은 Export 하는 패키지에 암호를 설정하는 레벨을 의미합니다. Import 하는 방법1. Integration Services 에 접속합니다. 2. Stored Packages -> MSDB -> Maintenan..
sp_prepexec 란 매개변수가 있는 트랜잭션을 실행할 수 있게 해줍니다.미리 컴파일 된 실행계획을 재사용할 수 있습니다. 자세한 사용법은 아래 URL 을 참고해주세요.https://docs.microsoft.com/ko-kr/sql/relational-databases/system-stored-procedures/sp-prepexec-transact-sql?view=sql-server-ver15 실행계획 재사용 테스트테스트 SP 생성합니다.@isvar 매개인자값에 따라 결과가 달라집니다. 12345678910111213141516171819CREATE PROCEDURE [dbo].[nxp_test01](@isvar tinyint,@result varchar(10) = null OUTPUT)ASset..
파티션사전적인 의미로 칸막이, 분할 등을 의미합니다.데이터베이스 관점에서 보면 테이블과 인덱스를 분할하여 저장하는 개념입니다. 테이블이나 인덱스를 정의할 때 컬럼 값 기준으로 분할함으로써 각 파티션이 물리적으로 다른 곳(파일그룹)에 위치하도록 할 수 있습니다. 1. SQL Server 는 현재 (2019) Range 파티션만 제공하며 파티션 키는 단일 컬럼만 가능합니다.2. Range 파티션 정의 시 left (경계값보다 작거나 같은) 와 right (경계값보다 작은) 옵션을 지정할 수 있습니다.3. 파티션을 N 개를 정의하면 N+1 번의 파티션이 자동으로 생성되며, N 파티션에 속하지 않은 모든 데이터가 들어갑니다. 파티션의 필요성월별 1억 건씩 10년치의 명세서가 저장되어 있는 테이블에서 특정 거래월..
꽁담
'SQL Server/SQL Server 기타' 카테고리의 글 목록