Search

'Database/Microsoft SQL Server'에 해당되는 글 13건

  1. 2013.07.30 SQL SERVER – FIX : Error 15023: User already exists in current database.
  2. 2013.05.28 DBCC SHOW_STATISTICS
  3. 2013.05.28 통계 / Statistics

사용자 데이터베이스 사용자와 로그인 계정과 정상적으로 매핑되지 않으면 ERROR 15023이 발생할 수 있다.


1. HRDB의 사용자와 로그인 계정 정보를 매핑한다. 결과 값에 아무것도 나오지 않았다면, 모든 사용자가 로그인 계정과 매핑되어 있는 것이다.

USE [HRDB]
GO
EXEC sp_change_users_login 'Report'
GO

2.  로그인 계정 삭제

USE [master]
GO

/****** Object: Login [test] Script Date: 2013-07-30 오후 12:21:32 ******/
DROP LOGIN [test]
GO

3. HRDB를 선택한 후, test 사용자 이름과 동일한 로그인 계정을 P@$$W0rd 암호를 사용하여 만든다.


USE HRDB

go

EXEC sp_change_users_login 'Auto_Fix', 'test', NULL, 'P@$$W0rd';
GO


[참고 사이트]

sp_change_users_login(Transact-SQL)

http://msdn.microsoft.com/ko-kr/library/ms174378.aspx

TAG 15023

DBCC SHOW_STATISTICS

Database/Microsoft SQL Server 2013.05.28 15:00 Posted by smileyoon

DBCC SHOW_STATISTICS 명령어를 통해 어떤 정보를 알 수 있는지 확인해 보도록 하겠습니다.

크게 3가지로 나뉘어지며, 자세한 내용은 참고 사이트를 확인해 보시기 바랍니다. 


[확인 가능한 정보]

1. 통계 이름

2. 통계 업데이트 시간

3. 밀도 (밀도에 대해서는 추가 확인이 필요하다. 좀 더 심오한 내용이 있었는데 기억이 잘 안난다....)

4. 선택도

=>3번째 박스를 보게 되면 RANGE_HI_KEY값을 통해 그 안에 데이터가 같은것이 있는지 없는지 확인이 가능하다.

1~1064 사이에는 총 1062개의 행이 존재하며, 그 값도 다르다. (DISTINCT_RANGE_ROWS랑 RANGE_ROWS 개수가 동일하다.)


[참고 사이트]

DBCC SHOW_STATISTICS(Transact-SQL)

http://msdn.microsoft.com/ko-kr/library/ms174384.aspx


통계 / Statistics

Database/Microsoft SQL Server 2013.05.28 14:16 Posted by smileyoon

오늘은 통계에 대해서 알아보도록 하겠습니다. 


[정의]

사전적 의미는 찾지 못했습니다. 추가하면 좋을 정보가 있다면 제보 부탁 드리겠습니다. 

저는 아래와 같이 이해했습니다.

'MS SQL에서의 통계는 Optimizer가 최적화된 실행계획을 만들기 위해 참조하는 정보이다.'


[통계를 이해하기 위해서는 이것만은 알아두자]

  • STATS_DATE / 테이블 또는 인덱싱된 뷰의 통계에 대한 가장 최근의 업데이트 날짜를 반환합니다.

=>STATS_DATE ( object_id , stats_id )

  • sys.indexes / 테이블, 뷰 또는 테이블 반환 함수와 같은 테이블 형식 개체의 인덱스 또는 힙당 하나의 행을 포함합니다.
  • sys.stats / 데이터베이스의 테이블, 인덱스 및 인덱싱된 뷰에 대한 각 통계 개체의 행을 포함합니다.
  • 기본값으로 [통계 자동 업데이트], [통계 자동 작성] 값은 True(on)으로 되어 있으며, 테이블 데이터의 약 20%정도 변경이 이루어져야 자동 업데이트를 하게 된다.


[통계 정보 확인하기]

구문

DBCC SHOW_STATISTICS ( table_or_indexed_view_name , target )

[ WITH [ NO_INFOMSGS ] < option > [ , n ] ]

< option > :: =

STAT_HEADER | DENSITY_VECTOR | HISTOGRAM | STATS_STREAM


실행화면

=>컬럼값의 의미를 정확히 이해해야 한다.


[통계 생성, 삭제, 업데이트]

생성 / create statistics

  • CREATE STATISTICS statistics_name on {table_or indexed_view_name} (column_name) 

삭제 / drop statistics

  •  Purchasing.Vendor 테이블의 VendorCredit 통계 삭제

DROP STATISTICS Purchasing.Vendor.VendorCredit

업데이트 / update statistics

  • EXEC sp_updatestats / 모든 통계 업데이트 
  • UPDATE STATISTICS Sales.SalesOrderDetail; / Sales.SalesOrderDetail 테이블에 있는 모든 통계 업데이트
  • Sales.SalesOrderDetail 테이블의 AK_SalesOrderDetail_rowguid 인덱스에 대한 통계 업데이트

UPDATE STATISTICS Sales.SalesOrderDetail AK_SalesOrderDetail_rowguid

[참고 사이트]

DBCC SHOW_STATISTICS(Transact-SQL)

http://msdn.microsoft.com/ko-kr/library/ms174384(v=sql.105).aspx

STATS_DATE(Transact-SQL)

http://msdn.microsoft.com/ko-kr/library/ms190330(v=sql.105).aspx

CREATE STATISTICS(Transact-SQL)

http://msdn.microsoft.com/ko-kr/library/ms188038(v=sql.105).aspx

UPDATE STATISTICS(Transact-SQL)

http://msdn.microsoft.com/ko-kr/library/ms187348.aspx