다수의 데이터 파일과는 다르게 다수의 로그파일은 성능이익에 전혀 영향을 미치지 않습니다. 트랜잭션 로그파일은 시간순으로 순차적으로 작성되어야 하며,따라서 SQL Server는 리두 로그 파일에 대해 I/O 작업을 병렬처리 할 수 없습니다. 만약 두번째 로그 파일이 사용하게 되는 경우는 첫 번째 로그 파일이 가득 차서 더이상 사용할 수 없게 되는 경우를 나타낼 것입니다. 따라서 저는 아래와 같은 방법이 더 좋다고 생각합니다. 하나의 큰 로그 파일을 사용하자1. 서비스 오픈 전 테스트를 진행하여 로그파일이 어느 사이즈까지 증가하는지를 산정2. 산정한 사이즈 량보다 충분한 여유공간이 있는 RAID10 디스크를 준비3. 해당 디스크에 로그파일의 경로를 설정4. 주기적으로 로그 축소 작업을 진행 추가적으로 FIL..
MS-SQL
먼저 쿼리 하나를 보겠습니다. CREATE DATABASE [SampleDB] ON PRIMARY -- Primary Group( NAME = 'SampleDB_01', -- Primary Group 의 파일1 FILENAME = 'C:\Data\SampleDB_01.mdf', SIZE = 5MB, MAXSIZE = UNLIMITED, FILEGROWTH = 1MB ),( NAME = 'SampleDB_02', -- Primary Group 의 파일2 FILENAME = 'D:\Data\SampleDB_02.mdf', SIZE = 5MB, MAXSIZE = UNLIMITED, FILEGROWTH = 1MB ), FILEGROUP [SECONDARY] -- Secondary Group( NAME = 'Sa..
오라클의 DESC오라클에서 DESC 를 하게 되면 해당 테이블의 컬럼, 컬럼크기, NullAble 등의 정보를 확인할 수 있습니다.DESC TABLE_NAME SQL Server 의 DESCSQL Server 는 DESC 를 지원하지 않습니다.대신 sp_columns 의 프로시저와 INFORMATION_SCHEMA.COLUMNS 테이블로 정보를 조회할 수 있습니다. EXEC SP_COLUMNS TABLE_NAME SELECT * FROM INFORMATION_SCHEMA WHERE TABLE_NAME = 'TABLE_NAME'
MSSQL 서버 확인하기@@SERVERNAME 으로 확인할 수 있습니다.현재 접속해있는 서버를 반환합니다.SELECT @@SERVERNAME MSSQL 인스턴스 확인하기@@SERVICENAME 으로 확인할 수 있습니다.현재 접속해 있는 인스턴스를 반환합니다.SELECT @@SERVICENAME MSSQL 데이터베이스 확인하기DB_NAME() 으로 확인할 수 있습니다.현재 접속해 있는 데이터베이스를 반환합니다.SELECT DB_NAME() 현재 접속한 서버 / 인스턴스 / 데이터베이스 확인SELECT @@SERVERNAME, @@SERVICENAME, DB_NAME()
ORACLE 에서 출력된 데이터로 테이블 생성하기ORACLE 에서는 CREATE TABLE AS SELECT * 문으로 테이블을 생성할 수 있습니다.* 대신 컬럼을 지정할 수도 있습니다.CREATE TABLE NEW_TABLE AS SELECT C1, C2 FROM OLD_TABLE ; SQL Server 에서 출력된 데이터로 테이블 생성하기SQL Server 에서는 SELECT * INFO FROM 문으로 테이블을 생성할 수 있습니다.* 대신 컬럼을 지정할 수도 있습니다.SELECT C1, C2 INTO NEW_TABLE FROM OLD_TABLE ; 새로 생성되는 테이블들은 기존의 제약사항을 가지고 있지 않습니다.
ANSI_NULLS 와 ANSI_WARNINGS 이란ANSI_NULLS 는 NULL과 함께 사용될 경우 = , != () 비교 연산자의 ISO 호환 동작을 지정합니다.ANSI_WARNIGNS 은 집계함수에 NULL 값이 있으면 경고 메세지가 생성됩니다. https://docs.microsoft.com/ko-kr/sql/t-sql/statements/set-ansi-nulls-transact-sql?view=sql-server-2017https://docs.microsoft.com/ko-kr/sql/t-sql/statements/set-ansi-warnings-transact-sql?view=sql-server-2017 오류 해결법수행할 쿼리 위에 ANSI_NULLS 와 ANSI_WARNIGNS 을 ON ..
USE [?] 를 사용하자USE [?] 는 모든 데이터베이스에 접속하겠다는 의미를 나타냅니다.USE [?] 는 SQL Server 에서 지원하는 SP_MSFOREACHDB 프로시저와 함께 사용해야 합니다. USE [?] 의 사용법SELECT DB_NAME() 란에 원하는 쿼리를 넣어서 사용하시면 됩니다.참고로 쿼리에서 ' 를 쓰기를 원하는 경우 ' 를 하나 더 붙여서 '' 로 사용해야 합니다.EXEC MASTER..SP_MSFOREACHDB 'USE [?]BEGIN SELECT DB_NAME()END' USE [?] 에서 특정 데이터베이스 제외하기USE [?] 하단에 IF ''?' 로 제외할 수 있습니다.EXEC MASTER..SP_MSFOREACHDB 'USE [?]IF ''?'' ''master'' ..
MSSQL 은 백업시 백업 경로를 입력하는 대신에 백업 경로를 저장한 백업 장치를 사용하여 백업을 수행할 수 있습니다.매번 백업경로를 생각하고, 그 경로를 작성해야 하는 것보단 백업장치 명만 기억하면 되기 때문에 편리하게 사용할 수 있습니다. 이번 포스팅은 백업 장치를 만들어 보고 삭제하는 것을 알아보겠습니다. SSMS 를 이용하여 백업 장치를 만들어 보기1. 서버 개체 - 백업 장치 - 새 백업 장치를 클릭합니다. 2. 장치 이름에 원하는 백업 장치 명을, 아래에는 백업파일이 생성될 폴더 경로와 파일명을 입력해 줍니다.이 때, 폴더는 있어야 합니다. 3. 백업 장치가 만들어졌습니다. 나중에 백업할 때 경로를 작성하는 대신 백업 장치 명을 사용하여 진행 할 수 있습니다.아래의 2개 쿼리는 동일한 의미를 ..