Database/MSSQL
-
MSSQL 보안 가이드Database/MSSQL 2023. 2. 20. 14:24
MSSQL 데이터베이스를 보호하기 위한 보안 가이드는 다음과 같습니다. 1. 액세스 제어: MSSQL 데이터베이스에 접근할 수 있는 사용자와 권한을 제어해야 합니다. 사용자 계정과 암호를 보호하고, 데이터베이스 객체에 대한 액세스 권한을 부여합니다. 불필요한 권한은 제거하고, 최소한의 권한만을 부여해야 합니다. 2. 암호화: 데이터베이스의 중요 정보는 암호화하여 보호해야 합니다. MSSQL에서는 TDE(Transparent Data Encryption)와 같은 암호화 기술을 사용하여 데이터베이스 파일의 내용을 암호화할 수 있습니다. 3. 보안 패치: 보안 취약점이 발견되면, 즉시 패치를 적용해야 합니다. MSSQL은 보안 패치가 주기적으로 배포되므로, 최신 보안 패치를 적용하여 보안 취약점을 최소화해야 ..
-
MSSQL 성능 튜닝 가이드Database/MSSQL 2023. 2. 20. 14:20
MSSQL의 성능을 향상시키기 위한 튜닝 기술 및 방법을 아는 것은 더 빠른 쿼리 처리 및 애플리케이션 성능 개선에 도움을 줍니다. MSSQL 성능 튜닝은 다음과 같은 단계로 이루어집니다. 1. 성능 측정: 성능 측정을 위해 쿼리 실행 계획을 확인하고, 인덱스를 검사하며, 성능 저하 원인을 분석합니다. SQL Server Management Studio에서 제공하는 성능 모니터링 도구를 사용하면 성능 측정을 보다 쉽게 수행할 수 있습니다. 2. 인덱스 튜닝: 인덱스를 최적화하여 쿼리 실행 속도를 향상시키는 것이 중요합니다. 인덱스를 검사하여 인덱스 부재나 인덱스의 적절하지 않은 사용으로 인한 성능 저하 원인을 찾아 수정합니다. 3. 쿼리 최적화: 비효율적인 쿼리는 성능 저하의 원인이 됩니다. 비교 연산자..
-
MSSQL 쿼리 작성 가이드Database/MSSQL 2023. 2. 20. 14:17
다음은 MSSQL 쿼리 작성 가이드입니다. 1. 기본 SQL 문법 이해: MSSQL 쿼리를 작성하기 위해서는 기본적인 SQL 문법을 이해해야 합니다. SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY 등의 SQL 문법 요소를 알아야 합니다. 2. 조건절 작성: WHERE 절을 사용하여 데이터를 필터링하거나, JOIN 절을 사용하여 테이블을 결합하는 등의 작업을 수행할 수 있습니다. 조건절을 효율적으로 작성하기 위해서는 비교 연산자, 논리 연산자, IN 연산자, BETWEEN 연산자 등의 연산자를 이해해야 합니다. 3. 그룹화 작업: GROUP BY 절과 HAVING 절을 사용하여 데이터를 그룹화하고 집계 함수를 사용하여 그룹화된 데이터의 집계 값을 계산할 수 있습니다...
-
MSSQL 설치 및 설정 방법 가이드Database/MSSQL 2023. 2. 20. 14:14
MSSQL 설치 및 설정 방법은 다음과 같습니다. 1. MSSQL 서버 설치 파일 다운로드: Microsoft 웹 사이트에서 MSSQL 서버 설치 파일을 다운로드합니다. 2. MSSQL 서버 설치 시작: 다운로드한 설치 파일을 실행하여 MSSQL 서버 설치를 시작합니다. 설치 프로세스에서 필요한 정보를 입력합니다. 3. 데이터베이스 엔진 구성: 설치 프로세스에서 데이터베이스 엔진을 구성하고 데이터 디렉토리와 로그 디렉토리를 지정합니다. 4. 인증 모드 선택: MSSQL 서버에 연결하는 방법을 선택하는 인증 모드를 선택합니다. Windows 인증 모드 또는 SQL Server 인증 모드를 선택할 수 있습니다. 5. 사용자 권한 설정: 설치 프로세스에서 사용자 계정과 권한을 설정합니다. 권한 설정을 통해 서..
-
MSSQL 연결된 서버 오라클의 프로시저 실행 방법Database/MSSQL 2019. 7. 23. 09:35
DECLARE @dateval DATETIME EXECUTE ('begin my1.spGetDate(?); end;', @dateval OUTPUT) AT ORA_DBLINK_NAME; EXECUTE ('begin my1.spDeleteOldRecords(?); end;', @dateval) AT ORA_DBLINK_NAME; 매개 변수가 여러 개인 경우 다음과 같이 표시 될 수 있습니다. EXECUTE ('begin my1.spProc(?,?,?,?); end;', @param_in_1, @param_in_2, @param_out_3 OUTPUT, @param_out_4 OUTPUT) AT DBLINK_NAME; https://codeday.me/ko/qa/20190510/510559.html SQL ..
-
MSSQL 테이블에 칼럼 추가, 변경, 삭제 쿼리Database/MSSQL 2019. 5. 7. 11:05
1. 칼럼 추가 ALTER TABLE [Table_Name] ADD [Column_Name] [data_type] ;NULL여부 ;default '기본값' - NULL 허용: ALTER TABLE table1 ADD cTitle varchar(10) null - NULL 허용X, 기본값 있음: ALTER TABLE table1 ADD SubTitle varchar(10) not null default 'N' 2. 변경 - 칼럼명 EXEC sp_rename '[Table_Name].[Old_Column_Name]', '[New_Column_Name]', 'COLUMN' EXEC sp_rename 'table1.cTitle', 'Title', 'COLUMN' - 칼럼 데이터타입 ALTER TABLE [Tab..
-
MSSQL 소계, 합계 만드는 쿼리Database/MSSQL 2019. 4. 23. 12:04
다음은 UNION과 Order by를 이용해 소계와 합계를 만드는 쿼리에 대한 설명이다. -- 테이블 정의 DECLARE @Table1 table ( _Name varchar(30) null, _Date varchar(10) null, _Number int null ) @Table1에 아래 그림과 같이 데이터가 들어있으며 사람별 _Number의 합계와 전체 _Number의 합계를 구하고자 할 때 SELECT _Name, _Date, _Number, 1 as Ordering FROM @Table1 UNION ALL SELECT _Name, '소계' as _Date, SUM(_Number) as Number, 1 as Ordering FROM @Table1 GROUP BY _GroupName UNION AL..
-
MSSQL 프로시저와 함수의 소스를 조회하는 쿼리Database/MSSQL 2019. 4. 16. 18:15
sp_helptext 프로시저명 sp_helptext 함수명 sp_helptext 프로시저명을 입력하고 쿼리를 실행하니 결과가 테이블형식으로 나온다. 소스 한 줄당 한 Row sp_helptext 이름에서 알 수 있듯이 저장 프로시저인데 SSMS에 내장되어 있는 프로시저이므로 유지보수를 나온 상황에서 DB에 직접 들어갈 수 없을 때 등 그저 자신이 알고자 하는 프로시저 혹은 함수의 소스를 알고자 할 때 유용하게 쓸 수 있겠다.
-
MSSQL 로그파일 삭제, 용량 줄이기Database/MSSQL 2019. 2. 7. 10:32
어느날 프로그램이 되지 않아서 보니까 드라이브의 용량이 꽉 차있었다.어디서 드라이브 용량이 꽉 찬 것인지 SpaceSniffer로 확인해보니까 MSSQL DATA 폴더에 특정 데이터베이스 로그파일이 아주 엄청 늘어나 있었다. 이전에 쓴 글인 트랜잭션 로그가 꽉 차서 해결했던 방법을 써보았으나2018/08/17 - [Database/MSSQL] - MSSQL 오류 해결 트랜잭션 로그가 꽉 찼습니다. 드라이브에 용량이 없어도 너무 없어서 그런가 오류메시지가 발생하면서 로그파일이 삭제가 되지 않는다. 예전에 데이터베이스 속성을 통해서는 안 되었으나 쿼리를 실행했을 때는 되었던 경험을 통해 혹시 쿼리로 로그를 삭제할 수 있지 않을까 하는 생각에 방법을 찾아보았고, 아래의 sql 쿼리를 찾아내었다. USE [Da..
-
SQL Server 구성관리자가 시작 메뉴에서 없을 때 실행 방법Database/MSSQL 2019. 1. 30. 11:47
시작페이지에 검색에 SQL Server 2014 버전인 경우는SQLServerManager12.msc 2014 이후 버전은 숫자를 하나씩 올리고,2014 이전 버전은 숫자 하나씩 내리면서 입력합니다. 참고로 SQL Server 2015는 없는 버전이기 때문에SQL Serer 2016이 SQLServerManager13.msc 입니다. 위와 같이 파일이 나온다면 실행합니다. 또는 윈도우키+R를 눌러 실행창을 띄운 후 입력합니다.[SQL Server 2017일 때] 확인을 클릭하면 SQL Server 구성관리자가 실행됩니다.
-
MSSQL 전체 SUM이 아닌 점차적으로 더하고(SUM) SELECTDatabase/MSSQL 2019. 1. 23. 15:21
SELECT sum(column) FROM table 을 하면 column의 row값 전체합을 조회한다.column의 전체합이 아니라row를 하나씩 점차적으로 sum을 하는 방법이 어디 없을까? SELECT ID, ( SELECT SUM(ValueColumn) FROM Test T2 WHERE T2.ID > 쿼리실행 >> 쿼리결과그림에서 W_UserAtt_Group 칼럼의 값은 전부 1인데 이 칼럼을 점차 더해주는 쿼리를 사용하여 GradualSum에서 W_UserAtt_Group 값이 1씩 증가한 것을 볼 수 있다.
-
C# Linq query 'and' 'or' operators (Linq 조건 2개 이상일 때 and, or 연산자)Database/MSSQL 2018. 12. 26. 18:01
sql 쿼리를 c#의 linq를 통해 구현하고자 할 때'and' 는 '&&' 연산자를'or'은 '||' 연산자를 사용합니다. 추가로 select를 선택적으로 할 때는 'new' 연산자를 이용합니다. 다음은 stackoverflow에 한 질문을 통해 가져 온 예제입니다. person 테이블에서 name은 John이고, 생일은 1990년 1월 1일 이후인 사람의 name과 surname만 select 하려고 하는데sql의 'and'와 ','를 c# linq에서 어떻게 쓰나요? Hello people, I've got very simple question. Is it possible in linq just like in SQL language use "and"? Just like select: select n..
-
MSSQL 읽기(테이블 조회, select) 권한만 가능한 계정 만들기Database/MSSQL 2018. 12. 19. 10:09
계정에 읽기(select) 권한만 부여하고 추가, 수정 및 삭제(insert, update, delete) 권한은 주지 않는 방법입니다. 1. 이미 생성되어 있는 계정 중에서 부여를 한다면 보안 > 로그인을 펼쳐서 해당 계정을 오른쪽 마우스로 클릭하고, 속성을 클릭합니다.새로 만드는 경우는 로그인을 오른쪽 마우스로 클릭하고, 새 로그인을 클릭합니다. 2. 일반에서 로그인 이름, 암호를 입력하고 기본 데이터베이스 등을 선택합니다. 3. 서버 역할은 public 하나만 체크합니다. 4. 사용자 매핑 - 권한부여를 하는 곳입니다. 매핑할 데이터베이스를 체크하고, 그 밑에 데이터베이스 역할 멤버 자격에서 db_datareader와 public을 체크하고 확인을 눌러 저장합니다. 5. 읽기 권한만 부여한 계정으로..
-
MSSQL 공백제거 RTRIM, LTRIMDatabase/MSSQL 2018. 12. 14. 13:13
데이터의 자료형이 char이나 nchar이면 자릿수만큼 공백이 채워진다.또는 데이터를 입력하다가 실수로 맨 왼쪽이나 맨 오른쪽에 공백이 들어간 경우 이때 이 데이터를 조회할 때 공백은 불필요한 것이므로왼쪽에 공백이 채워졌거나 오른쪽에 공백이 채워졌을 때 제거하려면 다음의 함수를 사용한다. 데이터의 왼쪽 공백 제거 = LTRIM(데이터)데이터의 오른쪽 공백 제거 = RTRIM(데이터) 두개를 같이 쓰면 LTRIM((RTRIM(데이터)) 그 외에 데이터 중간에 공백을 넣고 잘못 입력했을 때는 REPLACE를 활용한다.REPLACE(데이터, ' ', '')
-
MSSQL [펌] 성능 향상을 위한 팁Database/MSSQL 2018. 10. 17. 14:00
1. 생성시 주의사항 2. (18) Table Hints 사용 2. (20) SET NOCOUNT ON / OFF 사용하기 3. (2) INDEX를 타는지 확인 https://m.blog.naver.com/PostView.nhn?blogId=islove8587&logNo=220605402338&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F[MSSQL] 성능 향상을 위한 팁1. 생성시 주의사항(1) DB 생성시 주의사항 ① DB 명칭은 해당 서비스를 파악할 수 있도록 명명한다. (...m.blog.naver.com