본문 바로가기

DataBase

MSSQL, 테이블 및 인덱스 사이즈 구하기, Table and Index size in SQL Server create table #t ( name nvarchar(128), rows varchar(50), reserved varchar(50), data varchar(50), index_size varchar(50), unused varchar(50) ) declare @id nvarchar(128) declare c cursor for select '[' + sc.name + '].[' + s.name + ']' FROM sysobjects s INNER JOIN sys.schemas sc ON s.uid = sc.schema_id where s.xtype='U' open c fetch c into @id while @@fetch_status = 0 begin insert into #t exec sp_sp.. 더보기
database mdf 파일 사이즈 축소 로그 서버에 DB 파일 사이즈가 900기가에 육박하여 불필요한 로그를 삭제하고 DBCC SHRINKFILE(DB명, TRUNCATEONLY) 위와 같이 축소를 했다. 하지만 크게 줄어들지 않은 mdf 파일 사이즈 왜 그렇지 하고 찾아보니 SHRINKFILE 옵션을 찾아보니 (MS docs 링크) NOTRUNCATE target_percent의 지정 여부와 관계없이 데이터 파일의 끝에서 할당된 페이지를 파일 앞의 할당되지 않은 페이지로 이동합니다. 파일 끝의 사용 가능한 공간이 운영 체제에 반환되지 않고, 파일의 물리적 크기가 변경되지 않습니다. 그러므로 NOTRUNCATE를 지정하면 파일이 축소되지 않는 것처럼 보입니다. NOTRUNCATE는 데이터 파일에만 적용되며 로그 파일에는 영향을 주지 않습니다... 더보기
Database 목록을 확인하는 5가지 방법 SQL Server 2000 이상 SELECT * FROM dbo.sysdatabases SQL Server 2005 이상 SELECT * FROM sys.databases DB 이름만 EXEC sp_MSForEachDB 'SELECT ''?'' AS DatabaseName' DB 이름 , 소유자 , 상태 , 크기 등과 함께 EXEC sp_helpdb DB 이름 , 크기 EXEC sp_databases 더보기
MSSQL 오프라인 안될 때 - 지연될 때 ALTER DATABASE 디비명 SET OFFLINE WITH ROLLBACK IMMEDIATE 불완전한 트랜잭션이 롤백되고 있습니다. 예상 롤백 완료율: 0%. 불완전한 트랜잭션이 롤백되고 있습니다. 예상 롤백 완료율: 100%. 오프라인 오래 걸려서 구글링 하니 나옴.. ALTER DATABASE 는 트랜잭션이 Commit , Rollback 되어야 실행되기 때문에 처리가 지연된다. https://ribin.tistory.com/286 더보기
sys.databases DB Status 확인하기 단순 DB status 를 확인하기 위해 찾았으나 collation , status , user Access 등.. 활용도 있는 값들이 있음. state_desc : ONLINE / OFFLINE state : 0 = ONLINE 1 = RESTORING 2 = 복구 | SQL Server 2008 를 통해 SQL Server 2017 3 = RECOVERY_PENDING | SQL Server 2008 를 통해 SQL Server 2017 4 = SUSPECT 5 EMERGENCY = | SQL Server 2008 를 통해 SQL Server 2017 6 = 오프 라인 | SQL Server 2008 를 통해 SQL Server 2017 7 = 복사| Azure SQL 데이터베이스 활성 지리적 복제 .. 더보기
sqlyog community 버전 다운로드 주소 https://github.com/webyog/sqlyog-community/wiki/Downloads 더보기
연결된 서버의 프로시저 실행시 "메시지 7411, 수준 16, 상태 1, 줄 3 서버 '000.000.000.000'이(가) RPC에 대해 구성되지 않았습니다." 연결된 서버 ( Linked Server )의 프로시저 실행 시 아래와 같은 오류 메시지가 뜸. 메시지 7411, 수준 16, 상태 1, 줄 3서버 '000.000.000.000'이(가) RPC에 대해 구성되지 않았습니다. 해결 방법 : 아래와 같이 속성 변경 1. 해당 연결된 서버 속성 > 서버 옵션 > RPC > True2. 해당 연결된 서버 속성 > 서버 옵션 > RPC 내보내기 > True 더보기
대칭키 암호화 데이터 뷰테이블에서 복호화 하는 방법 / DecryptByKeyAutoCert 대칭키를 이용한 DB 암호화 처리 작업 시 아래와 같이 대칭키와 인증서 OPEN 후 암복호화를 해야하는 것으로 알고 있었음. OPEN SYMMETRIC 대칭키이름 DECRYPTION BY CERTIFICATE 인증서이름; 그런데 문제는 일반 프로시저나 웹 소스에서는 문제가 없으나 외부에 뷰테이블 형태로 제공하는 데이터가 있었는데 뷰테이블에서는 그때까지만 해도.. OPEN SYMMETRIC 을 할수 없는게..아닌가..하고 난감했지만.. https://docs.microsoft.com/ko-kr/sql/t-sql/functions/decryptbykeyautocert-transact-sql?view=sql-server-2017 DecryptByKeyAutoCert 내장 함수를 사용하면 가능해진다는 것.. -.. 더보기