«sql-server» 태그된 질문

모든 버전의 Microsoft SQL Server (MySQL 아님) sql-server-2016과 같은 버전 별 태그도 질문과 관련이 있기 때문에 추가하십시오.

4
테이블을 크게 변경하는 것이 더 낫습니다. 매번 DELETE 및 INSERT 또는 기존 업데이트?
나는 매일 한 테이블에서 약 36K 레코드를 변경 해야하는 프로젝트를 만들고 있습니다. 나는 무엇을 더 잘할 것인지 궁금합니다. 행을 삭제하고 새 행을 삽입하거나 기존 행 업데이트 나를 위해 모든 행을 삭제하고 새 행을 삽입하는 것이 더 쉽지만 테이블과 인덱스를 조각화하고 성능에 영향을 줄 경우 가능한 경우 업데이트를 수행하고 필요할 때만 …

3
SQL Server는 A <> B를 A <B OR A> B로 분할하여 B가 결정적이지 않은 경우 이상한 결과를 생성합니다.
SQL Server에 흥미로운 문제가 발생했습니다. 다음 재현 예제를 고려하십시오. CREATE TABLE #test (s_guid uniqueidentifier PRIMARY KEY); INSERT INTO #test (s_guid) VALUES ('7E28EFF8-A80A-45E4-BFE0-C13989D69618'); SELECT s_guid FROM #test WHERE s_guid = '7E28EFF8-A80A-45E4-BFE0-C13989D69618' AND s_guid &lt;&gt; NEWID(); DROP TABLE #test; 깡깡이 s_guid &lt;&gt; NEWID()조건이 완전히 쓸모없는 것처럼 보이는 것을 잊지 마십시오 . 이것은 …

2
SQL Server 2014에서 LEN () 함수가 카디널리티를 과소 평가하는 이유는 무엇입니까?
문자열 열이있는 테이블과 특정 길이의 행을 검사하는 술어가 있습니다. SQL Server 2014에서 확인하는 길이에 관계없이 예상 1 행이 표시됩니다. 실제로 수천 또는 수백만 개의 행이 있고 SQL Server가이 테이블을 중첩 루프의 외부에 배치하도록 선택하기 때문에 계획이 매우 좋지 않습니다. SQL Server 2014의 카디널리티 예상 1.0003에 대한 설명이있는 반면 SQL Server …

4
'XTP_CHECKPOINT'로 인해 데이터베이스 'database_name'에 대한 트랜잭션 로그가 가득 찼습니다.
에 대한 질문이 XTP_CHECKPOINT있습니다. SQL Server 2014를 사용하고 있습니다. SIMPLE 복구 모델 모드 인 데이터베이스가 있습니다. 또한 복제되고 있습니다. 미결 거래가 없습니다. 나는 달렸고 DBCC OPENTRAN그것이 돌아왔다 : "활성 거래가 없습니다." 그러나 테이블을 만들거나 삭제하거나 데이터를 삭제하려고 할 때 마다이 메시지가 계속 나타납니다 (실제 데이터베이스 이름을 단어로 바꿨습니다 database_name) " …

1
동일한 LOB 데이터에 액세스 할 때 논리적 읽기가 다름
다음은 동일한 데이터를 읽지 만 매우 다른 논리적 읽기를보고하는 세 가지 간단한 테스트입니다. 설정 다음 스크립트는 100 개의 동일한 행이있는 테스트 테이블을 작성합니다. 각 테이블에는 행 외부에 저장하기에 충분한 데이터 가있는 xml 열이 포함되어 있습니다. 내 테스트 데이터베이스에서 생성 된 xml 의 길이는 각 행에 대해 20,204 바이트입니다. -- Conditional …

6
ON과 WHERE의 인덱스 성능
나는 두 개의 테이블이 @T1 TABLE ( Id INT, Date DATETIME ) @T2 TABLE ( Id INT, Date DATETIME ) 이 테이블에는 (Id, Date)에 비 클러스터형 인덱스가 있습니다. 그리고 나는이 테이블에 합류합니다 SELECT * FROM T1 AS t1 INNER JOIN T2 AS t2 ON t1.Id = t2.Id WHERE t1.Date &lt;= …

4
CDC를 사용하여 기록을 추적하는시기
SQL Server 변경 데이터 캡처는 SQL Server 트랜잭션 로그에서 기록 데이터를 읽고 특수 테이블에 저장하는 기능입니다. TVF (특수 테이블 값 함수)를 사용하면 사용자가이 데이터를 쿼리 할 수 ​​있으므로 특정 테이블의 모든 변경 사항을 가져 오거나 특정 시간 내에 변경으로 인해 발생한 순 변경 사항 만 가져올 수 있습니다. CDC에는 특정 …

2
사용자 정의 함수 관련 최적화 문제
한 행만 가져와야하지만 SQL Server가 테이블의 모든 값에 대해 사용자 정의 함수를 호출하기로 결정한 이유를 이해하는 데 문제가 있습니다. 실제 SQL은 훨씬 더 복잡하지만 문제를 다음과 같이 줄일 수있었습니다. select S.GROUPCODE, H.ORDERCATEGORY from ORDERLINE L join ORDERHDR H on H.ORDERID = L.ORDERID join PRODUCT P on P.PRODUCT = L.PRODUCT cross …

2
테이블이 자신을 참조 할 때 모든 순환 참조를 찾는 쿼리를 작성하는 방법은 무엇입니까?
다음 스키마 (이름이 변경됨)가 있는데 변경할 수 없습니다. CREATE TABLE MyTable ( Id INT NOT NULL PRIMARY KEY, ParentId INT NOT NULL ); ALTER TABLE MyTable ADD FOREIGN KEY (ParentId) REFERENCES MyTable(Id); 즉, 각 레코드는 다른 레코드의 자식입니다. 레코드가의 레코드 ParentId와 같으면 Id레코드는 루트 노드로 간주됩니다. 모든 순환 참조를 찾을 …

6
많은 수의 행을 삭제 한 후에 SQL Server 데이터베이스 크기가 줄어들지 않았습니다.
SQL에 능숙하지 않지만 유지 관리 할 데이터베이스가 있습니다. 남아있는 곳이 거의 없으므로 2008 년이라고 가정 해 보겠습니다. delete query (만 10 만 행 삭제) 및 트랜잭션 로그 정리를 실행 한 후 작업은 데이터베이스 크기에 영향을 미치지 않았습니다. 내가해야 할 다른 일이 있습니까?

2
tempdb 성장을 유발 한 SQL 문을 찾는 방법은 무엇입니까?
서버의 tempdb (SQL Server 2008)는 매월 여러 번 500GB 이상으로 증가합니다. 이 문제를 일으킨 SQL 문을 찾을 수 있습니까? 이 문제는 일반적으로 발생 create table #temp...; insert into #temp...하거나 select ... into #temp...복잡한 조인으로 인해 발생하지 않습니다 . 일부 tempdb 파일 의 초기 크기 는 매번 훨씬 더 큰 값으로 …

2
저장 프로 시저를 프로파일 링하는 방법
SQL Server 2012를 사용하고 있으며 저장 프로 시저를 프로파일 링하는 방법이 궁금합니다. 예를 들어, 프로파일 러는 스토어드 프로 시저에서 각 개별 SQL 문을 캡처하고, 그 내용 및 실행 시간 등을 파악할 수 있습니까? 병합 복제 저장 프로 시저를 진단하려고하는데 병합 에이전트 전체 실행의 일부를 캡처해야합니다. 성능 문제가있는 저장 프로 시저를 …

2
색인이 너무 많은 경우 / 알 수있는 방법
때때로 Microsoft SQL Server Profiler를 실행하면 생성 할 새로운 인덱스와 통계가 많이 나옵니다 ( "... 97 % 추정 개선 ..."). 내 이해로 추가 된 모든 인덱스는 SQL SELECT쿼리를 더 빠르게 만들 수 있지만 인덱스를 조정해야하기 때문에 UPDATE또는 INSERT쿼리 속도가 느려질 수 있습니다. 내가 "너무 많은"인덱스 / 통계를 언제 얻습니까? 아마도 …

3
sql-server bak를 복원하고 동시에 로그를 축소 할 수 있습니까?
문제 조사를 위해 개발자 사무실로 옮긴 클라이언트의 bak 파일이 있습니다. 백업은 현재 25GB이고 복원 된 데이터베이스의 크기는 거의 같지만 복원하려면 100GB가 필요합니다. 데이터베이스가 75GB 트랜잭션 로그 크기를 갖도록 설정 되었기 때문이라고 생각합니다. 데이터베이스를 복원 한 후 로그 파일을 축소 할 수 있지만 복원시이를 수행 할 수있는 방법이 있습니까?

3
"카오스"격리 수준은 무엇이며 언제 사용해야합니까?
ADO.NET 설명서는 SQL 트랜잭션의 트랜잭션 수준을 Chaos로 설정하는 가능성을 보여줍니다. 불쾌하게 들리지만 기능이 있으면 합법적으로 사용됩니다. BOL 의 SET TRANSACTION ISOLATION LEVEL 명령 (ah! google 및 BOL을 사용할 수 있음)에는 "chaos"라는 이름이 표시되지 않으며 ADO.NET에는 "chaos"외에도 문서화 된 수준에 잘 맞는 5 가지 모드가 있습니다. 이 카오스 레벨은 누구 또는 …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.