2011-01-04 2 views
1

간단한 쿼리를 수행하기 위해 XSL을 사용하여 Filemaker 데이터베이스에서 데이터를로드하는 ASP 프론트 엔드가 있습니다. 문제는 첫 번째 페이지로드에 20 초 +/- 200ms가 걸린 다음 첫 번째 요청에서 1 분 이내에 다음 몇 페이지를 새로 고침하면 < 200ms가 소요되고주기가 다시 시작됩니다.Filemaker XSL 20sec 쿼리 대기 시간

각 페이지로드는 첫 번째 페이지로드 이후 두 번만 수행하므로 두 번째 페이지로드 후에 지연이 발생합니다. 첫 번째 페이지로드가 지연되는 원인은 무엇입니까? 캐싱은 100 %의 히트 율과 100의 연결 수로 나타났습니다. 변경없이 XSL 데이터베이스 세션을 켜고 끄고 세션 시간을 1 분에서 60 분까지 시도했습니다.

ASP의 XSL로드는 GET 요청을 사용하고 매번 인증 할 기본 Authorization 헤더를 추가합니다. 빠른 페이지 요청시

fmserver.exefmswpc.exe 프로세스도 주저하지 않는다, 그러나 20초 정체하는 동안 나는 fmserver 점프 30 %의 CPU와 3메가바이트의 I/O는 요청에 몇 초를 읽어보고, 때때로 fmswpc 60 % CPU로 점프.

+0

성능 향상을 위해 매번 스타일 시트를 구문 분석하는 대신 서비스처럼 실행되는 미리 컴파일 된 변환이 필요하다고 생각합니다 (캐시 메커니즘에 개선점이 있다고 생각합니다) –

+0

문제는 스타일 시트의 구문 분석 시간이 아닙니다. 일부 페이지로드가 허용 가능한 시간 (200ms)으로 실행되기 때문입니다. 문제는 첫 번째 장소에서 스타일 시트를 만드는 데 약간의 대기 시간이 있다는 것입니다. 즉, 반환 된 XML을보기 위해 스타일 시트 URL을로드하려고 할 때 나는 여전히 20 초 지연됩니다. –

+0

아마도 ASP 프레임 워크에 어떤 종류의 최적화가 있으며, 내가 작성한 것을 수행하고 있습니다. 컴파일 된 스타일 시트를 메모리에 보존하여 재사용 할 수 있습니다. 물론 자동 최적화는 메모리 누수 최적화로 인해 영원히 지속될 수 없습니다. 이 명백 함을 선언 할 수있는 방법이 있어야합니다. –

답변

0

어떤 이유로 인해 지연을 초래 한 것은 Authorization 헤더였습니다. 게스트 계정에 전체 액세스 권한을 부여하고 해당 헤더를 제거하면 모든 요청이 빠릅니다. 그림을 이동.

+0

권한이없는 계정 (게스트가 아닌)으로 액세스 할 때 해당 권한 세트에 레코드 수준 권한을 제한하는 사용자 지정 계산이 있습니까? 이로 인해 잠재적으로 속도 문제가 발생할 수 있습니다. –

+0

아니요, 읽기 - 쓰기 권한이있는 표준 계정을 사용하고있었습니다. 문제는 또한 반환 된 행이 인증이 필요한 외부 파일의 필드를 참조하지만 사용 된 인증이 전달되지 않는 것일 수도 있습니다. –

1

동일한 컴퓨터에서 FileMaker 서버에 액세스하는 경우 'localhost'대신 '127.0.0.1'을 사용해야합니다.