2008-11-03 3 views
2

페이지 뷰 카운터를 개발하여 사이트에서 페이지의 조회수를 추적하여 사용자에게 표시합니다. (나는 전에 인트로 질문을했다 : Page View Counter like on StackOverFlow). 요청이있을 때까지 최종 사용자가 필요가 기다려야한다면페이지 뷰 카운터 - 데이터베이스 설정 및 기법/전략

<link rel="stylesheet" href="cn.axd?t=1&id=232" type="text/css" /> 
  1. 그냥 궁금 :이 전원이 발사됩니다 때마다

    은 권장 사항을 사용하여, 나는이 요청을 처리하는 HttpHandler를 개발 처리를 끝내기 전에 페이지를보고/상호 작용할 수 있습니다.

  2. 는 더 나은 선택 (특정 기록이 존재하는지 확인하는 정보는 MS 큐에 기록 결국 (예외 정책)

  3. 가 느린 있을까를 통해 데이터베이스에 기록됩니다 비동기 대기열을 구현 있을까 PageID) 및 카운터를 증가 시키거나 레코드를 데이터베이스에 삽입하고 필요할 때 나중에 집계하십시오. 특정 페이지의 일주일 동안의 페이지 뷰 총계를 보려면 주말에 집계를 실행하면됩니다.

감사합니다.

답변

0

흥미로운 질문을 상상할 수 없다! 다른 많은 성능 튜닝 질문과 마찬가지로 몇 가지 단점이 있습니다.

  1. 가능합니다. 이 핸들러를 IMG href = ""에로드하고 크기를 0으로 설정하여 사용자가 볼 수 없게하는 것이 더 좋습니다.

  2. 로드가 많으면 작업 대기열에 넣은 후 즉시 처리기가 반환 될 수 있습니다. 그러나 대부분의로드에서는 간단한 T-SQL 쿼리를 실행하여 카운터를 늘리는 것만 큼 빠른 방법 일 수 있습니다.

  3. T-SQL 쿼리에서 직접 값에 +1을 추가하는 것이 "count = count + 1"등 가장 좋을 것입니다. 이렇게하면 실행이 빨라 집계없이 데이터를 검색 할 수 있습니다 .

희망이 있습니다. 다만 페이지 뷰/안타를 추적하는 MQ 개발

아담

+0

감사합니다. Adam. 그냥 1, 왜 그렇게 자신의 페이지 카운터를 처리하기 위해 링크 (예 : CSS) 태그를 사용하는 것이 궁금해? – TimLeung

+0

아주 좋은 이유가있을 수 있습니다. 페이지 하단에있는 IMG 태그를 사용한 내 경험에 비추어 볼 때 페이지 디스플레이를 유지하지는 않지만, 내가 아는 사람이 더 좋은 이유가 있다는 것은 확실합니다. –

+0

당신이 그걸 보게되면 그 설명에 흥미가있을 것입니다. –

0

보기의 특정 시간/날짜를 추적 할 필요가 없다면 다른 페이지에서 참조하는 로깅 방법을 사용합니다. 내 추론은 응용 프로그램이 크기가 커지기 시작하면 얻을 수있는 항목의 수가 아주 많기 때문입니다.

핸들러를 CSS 스타일로 연결하면 실제로 로딩 시간을 많이 멈추지 않아도되지만 약간의 효과가있을 수 있습니다.

간단한 삽입/업데이트 스크립트와

, 나는 ... 문을 수행하는 성능 오버 헤드가 대기열 스타일의 시스템을하려고 가치가있을 것이라고

0

복잡 조금 넘는 소리.

사용자가 대기 시간을 느낄 염려가있는 경우 URL의 JavaScript에서 XmlHttpRequest를 시작하지 않는 이유는 무엇입니까? 그것은 비동기 적으로 처리됩니다.

+0

우수 포인트, 나중에 AJAX를 통해 요청을 실행하기 위해 규모를 조정할 때 나중에 위임 할 것임 – TimLeung

2

내 이전 회사에서도 우리는 페이지 뷰 카운터를 유지했으며 방문수가 증가함에 따라 웹 사이트를 무너 뜨린 데이터베이스 테이블도 증가했습니다. 당신이 구현 무엇이든 방법

나는 다음과 같은 추천 :

  1. 음주 모든 시간을 (그들이 업데이트보다 빠르게 있습니다) 삽입합니다.
  2. 비동기 적으로 수행하여 기본 스레드를 차단하지 않으며 이후 요청을 차단하지 않습니다.
  3. 데이터를 합계하고 1의 테이블을 지우는 야간 프로세스가 있습니다.
  4. 합계 된 데이터에 대해 선택하십시오.

실시간 데이터가 없지만 이것이 가장 효율적이고 확장 가능한 솔루션이라는 것을 알았습니다.

+0

메인 DB에서 카운터 DB를 별도로 유지 관리하면 확장성에 도움이됩니다. –