MS-SQL

문제 원인제목에 나와있다 시피 Ad Hoc Distirbute Queries 기능이 비활성화 되어 있기 때문입니다. 해결 방법SP_CONFIGURE 프로시저로 Ad Hoc 옵션을 활성화 시켜줍니다.한문장씩 실행하는걸 권장드립니다.EXEC SP_CONFIGURE 'show advanced options', 1;RECONFIGUREGO EXEC SP_CONFIGURE 'Ad Hoc Distributed Queries', 1;RECONFIGUREGO 이후에 다시 쿼리를 실행하는 경우 정상적으로 데이터를 가져오는 것을 볼 수 있습니다.
인스턴스데이터베이스 관점에서의 인스턴스는 쉽게 생각해서 하나의 데이터베이스 관리 시스템을 의미합니다.SQL Server 는 단일 서버에서 멀티 인스턴스를 지원합니다.즉, 하나의 물리적인 서버에서 둘 이상의 데이터베이스 관리 시스템을 운영할 수 있습니다. SqlServr.exeSQL Server는 SQLServr.exe 프로세스에 의해 실행됩니다.SQLServr.exe 는 하나의 데이터베이스 관리 시스템을 의미한다고 볼 수 있으며,데이터베이스가 사용하는 메모리, 각각의 데이터베이스, 데이터베이스를 운영하기 위한 여러 프로세스와 도구들이 연계됩니다.이러한 데이터베이스가 운영되는 단위를 SQL Server 에서는 인스턴스 라고 부릅니다. 아래 사진과 같이 하나의 물리적 서버에서 여러개의 SqlServr.exe..
데이터베이스 엔진 아키텍처전형적인 데이터베이스의 아키텍처 ( SQL Server 아키텍처도 포함 ) 1. 사용자가 쿼리를 요청하면, 쿼리 최적화기(Query Optimizer)가 요청을 받아 효율적인 수행 계획을 수립합니다.2. 실행 계획을 수립하면 관계 연산자(Relational Operator)가 질의를 단계적으로 수행합니다.3. 질의가 수행되는 각각의 절차에서, 파일 관리자(File Manager)는 파일 내의 페이지를 추적/감시하고 페이지의 정보를 조직합니다.4. 파일 매니저가 조직한 페이지 정보를 필요에 따라 메모리로 가져옵니다.5. 디스크 매니저(Disk Manager)는 페이지를 할당하고 반납하며, 디스크에 기록하는 작업을 수행합니다. SQL Server 의 계층 아키텍처 계층 설명 프로토콜..
MSCS ( Microsoft Cluster Service ) 클러스터 확인 오류MSSQL Failover Cluster 를 설치하는 도중 아래와 같은 오류가 발생했습니다. 에러 로그를 좀더 자세히 찾아보니, Cluster_VerifyForErrors 라는 오류로 나오네요. 오류 해결이 방법은 꼼수입니다. CMD 창에서 해당 경로애소 설치프로그램을 실행할때 오류를 체크하지 않겠다는 옵션을 부여합니다.원칙대로라면 위의 에러를 제대로 해결하고 가야하겠죠. SETUP.EXE /SkipRules=Cluster_VerifyForErrors /Action=InstallFailoverCluster 이번에는 오류가 발생하지 않은 것을 확인할 수 있습니다.
게시판의 구성 방식 구성 설명 블록 검정색 네모박스로, 페이지의 집합을 의미합니다. 페이지 주홍색 네모박스로, 게시글의 집합을 의미합니다. 이전/다음 블록 이동 녹색 네모박스로, 블록의 이동을 의미합니다. 이전/다음 페이지 이동 파란색 네모박스로, 페이지의 이동을 의미합니다. 테스트에 사용된 샘플 테이블은SQL Server 에서 제공하는 AdventureWorks 데이터베이스이 Sales.SalesOrderDetail 테이블 입니다.해당 테이블의 건수는 121,317 건이고, SalesOrderDetailID 컬럼에 DESC 정렬의 인덱스를 생성했습니다. 한 블록에는 10개의 페이지가, 한 페이지에는 10개의 게시글이 존재하고 있습니다.페이징 기법이 처리되지 않은 프로시저를 먼저 보고, 페이징 기법이 처..
CROSS APPLY 란, 그리고 OUTER APPLY 란table-valued expression 이 사용가능한 조인 방법을 의미합니다. table-valued expression 은 함수에서 RETURN 타입이 테이블 형태인 경우를 의미합니다. 테스트는 아래의 2개 테이블과 1개의 함수로 진행해 보겠습니다.함수의 내용을 보게되면 결국 매개인자로 테이블의 데이터를 반환한다 라는 것을 확인할 수 있습니다.CREATE TABLE FIRST_TABLE (C1 INT, C2 INT)INSERT INTO FIRST_TABLE VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5)GO CREATE TABLE SECOND_TABLE (C1 INT, C2 INT)INSERT INTO SEC..
복구 보류 중인 상태 확인하기SSMS 의 개체 탐색기에서도 바로 확인할 수 있지만, sys.databases 테이블에서도 데이터베이스의 상태를 확인할 수 있습니다. 복구 보류 중인 상태 원인1. 데이터베이스가 정상적으로 종료되지 않았습니다.데이터베이스가 종료되고 로그파일이 삭제될 때 COMMIT 되지 않은 활성화된 트랜잭션이 있을 수도 있습니다. 2. 로그 파일을 다른 경로로 이동하려고 했지만 이 과정에서 로그 파일이 손상되었습니다. 3. 메모리 공간 부족 또는 디스크 저장 공간으로 인해서 데이터베이스 복구를 시작할 수 없습니다. 복구 보류 중인 상태 해결하기해결책은 2가지가 있습니다. 해결책 1Northwind 데이터베이스를 복구하는 경우, 다음의 쿼리를 실행해 주세요.ALTER DATABASE Nor..
MSSQL - AdventureWorks 데이터베이스를 백업하기MSSQL 에서 제공하는 AdventureWorks 데이터베이스에 대해서 백업을 진행해보겠습니다.아래 단계에서는 많은 작업들을 추가할 수 있으나 사진으로는 최대한 간결하게 포현하였습니다. 1. AdventureWorks 데이터베이스 우클릭 - 태스크 - 백업으로 들어갑니다. 2. 백업 유형은 전체로, 백업할 위치를 설정한 후 확인을 눌러줍니다. - 데이터베이스 복구 모델이 단순 모델만 아니라면 트랜잭션 로그 백업도 할 수 있습니다. 트랜잭션 로그백업을 원하는 경우에는 백업 유형을 트랜잭션 로그로만 바꿔주세요. - 미디어 옵션에서 더 많은 설정을 할 수 있습니다. 여기서는 설명하지 않습니다. 3. 백업이 완료되었습니다. 4. 트랜잭션 로그도 2..
SQL Server 에서 권한에 관련하여 GRANT, REVOKE, DENY 구문을 지원합니다. 각 구문은 다음과 같은 특성을 지닙니다.GRANT 는 유저에 개체에 대한 권한을 허용DENY 는 유저에 개체에 대한 권한을 차단REVOKE 는 유저에 부여된 권한을 회수하는 GRANT 도 DENY 도 아닌 상태 GRANT 가 부여되지 않으면 권한에 대한 허용이 없다고 판단하고 작업을 할 수 없습니다.즉, GRANT 가 부여된 권한을 REVOKE 하면 유저는 해당 개체에 대해 작업을 할 수 없습니다. 그렇다면 REVOKE 와 DENY 의 차이점은 무엇일까? REVOKE 와 DENY 가 차이가 없을 경우SCHEMA1 에 대해서 SELECT 권한이 부여되었다고 가정합니다. 이 SCHEMA1 에 대해서 SELECT ..
SQL Server 는 정렬을 위한 수많은 데이터베이스 언어 셋을 지원하고 있습니다. SELECT * FROM sys.fn_helpcollations() 를 수행하면 지원하는 언어를 볼 수 있습니다.이 중에서 이번에는 Korean 으로 시작되는 정렬 문자열에 대해 알아보겠습니다. Korean_90/100/Wansung 로도 나눠지지만 저희는 Wansung 에 초점을 맞춰서 알아보겠습니다.Wansung 은 완성이란 뜻입니다. (사람의 이름이거나 그렇지 않습니다.ㅎㅎ) Korean_Wansung 의 언어 정렬SELECT name FROM sys.fn_helpcollations() WHERE NAME LIKE 'Korean_Wansung%' 위 쿼리로 검색하면 아래와 같은 값을 얻을 수 있습니다. * 로 쓰면..
꽁담
'MS-SQL' 태그의 글 목록 (2 Page)