2 개의 테이블이있는 SQL Server 2008 데이터베이스가 있습니다. 나는 관리 Studio에서 다음 쿼리를 실행 해요 :이 쿼리를 실행하면SQL Server - 동일한 쿼리, 동일한 데이터베이스, 다른 결과
select M.FD_BROWSER_SHORT_NAME AS X, Count(1) AS Y
from TB_EVENTS E
INNER JOIN TB_MACHINES M ON E.FD_ID = M.FD_ID AND E.FD_ID_NET = M.FD_ID_NET
where E.FD_EVENT_CODE = 30
group by M.FD_BROWSER_SHORT_NAME
having Count(1) > 10
는, 결과는 다음과 같습니다
다음X Y
OP 23
CR 1809
IE 5392
MZ 1000
나는 (동일한 데이터베이스에 다시 쿼리 (F5)을 실행 같은 세션). 에 대한 결과 변경 :
X Y
OP 1023
CR 1809
IE 5392
나는 다시 정상으로 다시 쿼리 결과를 실행하면 :
같은 서버에서X Y
OP 23
CR 1809
IE 5392
MZ 1000
, 같은 시간에, 나는 (삽입 데이터베이스를 변경하는 C# 응용 프로그램을 및 UPDATE). 이 응용 프로그램을 중지하면 문제가 중지됩니다.
먼저 문제는 잠금과 관련이 있다고 생각했습니다. 그런 다음 SQL 문 앞에 다음을 추가하려고했습니다.
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
그러나 문제는 계속 발생합니다.
다른 서버에서 문제를 재현하려고했으나 발생하지 않았습니다. 다른 서버와 SQL Server의 다른 버전으로 데이터베이스를 마이그레이션하려고 시도했지만 여전히 발생합니다.
이 문제는 집계 함수가 포함 된 다른 쿼리에서 발생합니다.
또한 통계를 업데이트하고 모든 인덱스를 다시 작성하려고했습니다. 아무것도 ...
아이디어가 있으십니까?