본문 바로가기
728x90
반응형

IT/DB17

[SQL] SQL JOIN 설명 SQL 공부할 때 JOIN개념이 헤깔려 구글링하던중 찾은 이미지입니다. SQL 쿼리로 설명하는 방법도 있지만, 이미지에 모든걸 함축하고 있기에 개인적으론 바로 이해가 되어 공유합니다^^ ​ ​ ​ ​ INNER JOIN LEFT JOIN RIGHT JOIN OUTER JOIN LEFT JOIN EXCLUDING INNER JOIN RIGHT JOIN EXCLUDING INNER JOIN OUTER JOIN EXCLUDING INNER JOIN ​ [참고] Visual Representation of SQL Joins This article describes SQL Joins in a visual manner, and also the most efficient way to write the visualiz.. 2023. 9. 16.
[MS-SQL] 대량 IO를 발생시키는 쿼리문 확인 SELECT TOP 50 (qs.total_logical_reads + qs.total_logical_writes) /qs.execution_count as [Avg IO], substring (qt.text,qs.statement_start_offset/2, (case when qs.statement_end_offset = -1 then len(convert(nvarchar(max), qt.text)) * 2 else qs.statement_end_offset end - qs.statement_start_offset)/2) as query_text, qt.dbid, qt.objectid FROM sys.dm_exec_query_stats qs cross apply sys.dm_exec_sql_text .. 2023. 2. 24.
[MS-SQL] 데이타베이스 각각의 CPU사용량 데이타베이스 별 CPU사용량 - mssql cpu usage per database 로 검색 WITH DB_CPU_Stats AS ( SELECT DatabaseID, DB_Name(DatabaseID) AS [DatabaseName], SUM(total_worker_time) AS [CPU_Time_Ms] FROM sys.dm_exec_query_stats AS qs CROSS APPLY ( SELECT CONVERT(int, value) AS [DatabaseID] FROM sys.dm_exec_plan_attributes(qs.plan_handle) WHERE attribute = N'dbid') AS F_DB GROUP BY DatabaseID ) SELECT ROW_NUMBER() OVER(OR.. 2023. 1. 27.
[MS-SQL] 전체백업, 차등백업, 작업스케쥴러 전체백업 BACKUP DATABASE [TESTDB] TO DISK = N'f:\BackUp\db_full.bak' WITH INIT ,COMPRESSION, NOUNLOAD , NAME = N'전체백업', SKIP , STATS = 10, NOFORMAT 풀백업후 로그초기화 ALTER DATABASE TESTDB SET RECOVERY SIMPLE GO DBCC SHRINKFILE(TESTDB_log, 1024) GO ALTER DATABASE TESTDB SET RECOVERY FULL GO 차등백업 BACKUP DATABASE [TESTDB] TO DISK = N'F:\backup\Diff_bakup\db_diff.bak' WITH DIFFERENTIAL ,COMPRESSION,NOFORMAT, I.. 2023. 1. 6.
[MS-SQL] CTE(Common Table Expression) 1. 기본 재귀쿼리 횟수조정 재귀호출을 중단하는 조건은 더이상 값을 반환하지 않을 때까지 이므로 무조건 값을 반환하는 형태라면 무한 Loop로 빠지게 되는 문제가 생기게 될 것입니다. 이 문제를 해결하기 위해서 Maxrecursion라는 옵션이 마련되어 있습니다. Maxrecursion을 사용하려면 재귀CTE를 호출하는 Select문에서 다음과 같이 추가합니다. Select ID, [Level] From HumanLevel Option(Maxrecursion 10) Maxrecursion 뒤에 숫자를 지정하면 해당 수만큼만 재귀호출이 발생합니다. (Maxrecursion를 지정하지 않을시 기본값은 100이며 0으로 지정하게 되면 무한대가 됩니다.) 2. 비재귀적 CTE WITH CTE_테이블이름(열이름).. 2022. 6. 6.
[MS-SQL] SELECT COUNT시 유의사항 SELECT * FROM TABLENAME 보다 SELECT COL1 FROM TABLENAME 이 구문이 속도가 빠르다. 단!! COL1기 NULL허용컬럼이라면 NULL값인 어커런스는 카운트에서 제외된다. 100행인데 NULL값이 1행이 있다면 총 카운트는 99로 잡힌다. 2022. 5. 25.
[MS-SQL] "테이블을 다시 만들어야하는.."오류 나올시 MSSE -> 도구 -> 옵션 -> Designers -> 테이블 및 데이타베이스 디자... -> 테이블을 다시 만들어야하는 변경내용 저장옵션 사용안함 체크해제 하고 저장. 2022. 5. 18.
[MS-SQL] SQL 인젝션 대비.. 프로시져를 사용하는 이유 중 하나가 sql 인젝션 공격에 대비하기 위한 방법입니다. 간단히 예를 하나 들자면 아이디를 입력하는 공간에 사용자가 '아이디' drop table 테이블 해당 부분을 디비에서는 select 아이디 from 테이블 where id = '아이디' drop table 테이블 으로 인식하여 해당 테이블은 drop 되어버립니다. 홑따옴표를 이용한 방법 중에 하나입니다. 가급적 데이터 타입과 길이를 맞추어서 프로시져를 생성하시길 바랍니다. 2022. 4. 19.
[MS-SQL] sa 비밀번호 변경 sa 비밀번호를 변경하려면 1 어드민 계정으로 윈도우에 로그인 2 SQL 서버를 실행하고 윈도우 인증을 통해서 로그인 3 새로운 쿼리 윈도우를 열고 다음 내용을 입력 sp_password @new = ‘new_password’, @loginame = ‘sa’ 4 Security > Logins > sa 더블클릭 또는 프로퍼티 선택 5 Status로 이동해서 Login이 비활성되어 있는경우 활성화합니다. sp_password @new = '비번', @loginame = 'sa' 또는 도스창접속 osql -E EXEC sp_password NULL, '변경할패스워드','sa' GO 변경완료됨. 2022. 4. 12.
728x90