2014-01-22 2 views
0

SQL Server 2008 R2에서 중소 규모 데이터베이스 계획을 진행하고 있으며 최근에 스키마 주제에 대해 간략하게 언급 한 교육 비디오를보고있었습니다.SQL Server 2008/2012에서 스키마 사용

조직 목적 또는 보안 목적으로 사용됩니까? 1 년 이상 된 데이터를 저장할 데이터베이스의 아카이브 섹션을 원하지만 데이터베이스에 여전히 존재하기 때문에 디자인에서 사용하려고 생각했습니다. 그리고 1 년 미만의 데이터가 될 "활성"데이터 테이블과 분리하십시오.

동일한 테이블 구조 (스키마가 연결된 스키마)가 "아카이브"인 두 스키마와 "현재"와 같은 이름을 가진 두 스키마를 만들려고했습니다. 데이터가 잘못 되었습니까? 아니면 중요하지 않습니까? (또는 SQL Server가 다른 스키마에서도 동일한 테이블 이름을 허용 할 수 있습니까?)

답변

0

"은 조직 목적 및/또는 보안 목적으로 사용되는 것입니까?

  • 둘 다

는 "당신은 같은 테이블 이름을 가질 수 있지만, 두 개의 서로 다른 스키마에있는"

  • 예, 할 수 있습니다. 그러나 나는 (주석에 관해서 다시 읽는다면) 어떤 종류의 아카이브 스키마가 아니라면 테이블 이름을 동일하게 지정하지 않을 것입니다.
+0

그래서 나는 당신의 대답을 추측 할 때 행을 "아카이브 된"것이 아닌 테이블을 복제하는 대신 나타 내기 위해 (비트 값의) 필드를 만드는 것이 더 나을 것이라고 생각하십니까? 그런 식으로 쿼리에서 나는 "아카이브"플래그가 FALSE 또는 이와 비슷한 것으로 설정된 레코드를 찾는다 고 말할 것입니다. 나는 SQL Server (및 그 문제에 대한 MySQL)가 몇 초 만에 수백만 행을 처리 할 수 ​​있지만 테이블이 커지면 주로 쿼리 실행 속도와 관련이 있다는 것을 알고 있습니다 (예 : 500,000 행 이상). – CLB

+0

성능을 향상 시키려면 (사용하는 쿼리와 상관없이) 작업 부하를 분석 한 다음 가능한 한 인덱스를 적용하십시오. 모든 쿼리에 포함되어야하는 보관 플래그로 디자인을 복잡하게 만들지 마십시오. 그것은 단지 사물을 복잡하게 만들 것입니다. –

관련 문제