Sql Server 2008에서 전체 텍스트 인덱스를 약간 재생하고 있습니다. 인덱스를 만들고 카탈로그를 채 웁니다. 내 테이블에는 약 400,000 개의 레코드가 있습니다. 내 전체 텍스트 색인은 varchar (최대) 열로 정의됩니다 (지금은 Text라고 부름). 다음 쿼리를 실행하고 있습니다.Sql Server 2008 FullText Optimization
select * from MyTable where (텍스트, '집').
이 쿼리는 14 초 만에 거의 20,000 개의 레코드를 반환합니다. 나는 그것이 매우 느린다고 생각한다. 그러나, 나는이 쿼리를 실행할 때 : MyTable에 에서
개수를 선택 (*)를 어디에 (텍스트, '집')
그것은 결과를 보여주기 위해 단 1 초 소요가 포함되어 있습니다.
내가보고있는 한, 실행 계획은 두 쿼리에서 동일합니다. 왜 SQL Server는 많은 쿼리 결과를 표시합니까?
이미 한 것을 :
가 나는 SSD를 구입하고이 디스크에 MDF와 LDF를 모두 넣어. 하지만 첫 번째 쿼리를 실행하면 로그와 tmp 데이터베이스가 내 HDD (SSD가 아님)에서 생성되고 있음을 알 수 있습니다. 내 SSD는 D :이고 모든 임시 파일은 C :에서 생성됩니다.
sql이 엔터프라이즈 관리자 결과 격자를 채우는 데 해당 파일을 필요로하기 때문에 시간이 오래 걸리나요? 내가 데이터베이스를 최적화하기 위해 할 수있는 일이 있습니까? 2 초 이내에 쿼리를 실행해야합니다.
모든 것이 단일 시스템에서 수행되고 있습니까, 아니면 네트워크를 통해 데이터를 전송하고 있습니까? –
한 번 더 질문 : 14 초 숫자는 SSMS 창으로 결과 집합을 반환하는 데 걸리는 시간 또는 값을 표시하는 데 걸리는 시간입니까? –
결과 세트를 내 SSMS로 되 돌리는 데 걸리는 시간 –