2012-07-30 3 views
0

.net 웹 양식의 일련의 필드에 대해 intellisense를 작성하여 사용자가 옵션 중 하나를 클릭하면 일련의 필드를 채울 수 있습니다. 필드 (이름, 주소 등). 이것은 C# .net 및 ajax를 사용하여 구현하는 것이 매우 쉽습니다. 그러나 최근에는 데이터베이스에 대해 검색되는 주요 필드를 암호화해야하므로 기능이 중단되었습니다. 검색 가능한 필드를 해독하는 유일한 방법은 현재 C# .net에 있습니다.메모리 또는 클라이언트 측에 큰 데이터 세트 저장

a) 페이지가로드 될 때 모든 레코드를 가져 와서 메모리에 (암호화되지 않은) 배열에 저장하고 검색 필드의 사용자 키가 linq를 사용하거나 관심있는 기록을 잡기 위해 람다에게. b) 페이지가로드 될 때 모든 레코드를 js 배열 (암호화되지 않음)에 저장하고 검색 클라이언트 측을 수행합니다.

내 웹 서버와 클라이언트의 검색 환경 모두에 대한 성능 고려 사항 중 가장 좋은 방법은 무엇입니까?

나는 이것이100k 레코드라고 생각하고 있습니다.

+0

검색하기 전에 해당 키를 암호화 할 수 없었습니까? 즉.'name = 'smith'를 검색하는 대신에'name ='02h37xsdfh5h5h23h34h '' 또는 db에 보이는 것이 무엇이든간에 검색 할 수 있습니다. – Daniel

+0

그들은 정확한 일치를 위해 작동하지만 누군가가 'smi'를 입력한다고 말합니다. – jreed350z

+0

좋아요, 전 열쇠로 쿼리했는데, 내 잘못이라고 생각했습니다 – Daniel

답변

1

서버 캐시에 레코드를 저장하고 아약스 요청을하는 이유는 무엇입니까? 이렇게하면 레코드 집합을 모든 사용자가 사용할 수있게됩니다.

+0

하지만 어떻게하면 현재의 레코드인지 확인할 수 있습니다. 여전히 사용자별로 새로 고침해야합니다. – jreed350z

+0

http://stackoverflow.com/questions/1434284/when-does-asp-net-remove-expired-cache-items – Nathan

1

와우 그래서 이것은 암호화 된 동적 데이터입니다.

각 페이지로드시 많은 레코드를 클라이언트에 보내는 것이 느립니다.

몇 초마다 데이터를로드하는 동적 캐시를 사용할 수 있습니다.

1

각 행의 크기는 어느 정도입니까? ~ 100k 행은 많은 데이터가 될 수 있습니다.

100,000 클라이언트에서 클라이언트에

은 데이터의 몇 가지 열 경우에도, 많은 양의 데이터입니다. 그것은 단지 데이터 일 뿐이며, 검색의 문제가 있습니다. 데스크톱 브라우저의 문제입니다. 그것은 모바일 브라우저를 죽일 것입니다. 서버

이 더 그럴듯하다. 고려해야 할

것들 :

  • 얼마나 많은 메모리를 소비하는 메모리에 모든 결과를로드하는 것입니까?
  • 모든 레코드를 메모리에로드하는 대기 시간 (네트워크, 데이터베이스)은 무엇입니까? 어쩌면 사용자에게 미치는 영향을 줄이기 위해 비동기로 수행 할 수 있습니다.
  • C#에서 검색하는 것이 특히 사전을 사용할 때 빠를 수 있지만 데이터베이스만큼 빠르지는 않습니다. 해독해야하는 데이터 만 메모리에 저장하고 나머지는 데이터베이스에 남겨 두는 것으로 생각해 봤습니까? 필요한 경우 DB에서 나머지 데이터를 가져 옵니까?

Ajax는 여전히 가능합니다 (데이터가 서버에 저장되었다고 가정). 검색 요청을 적절한 저장소 (메모리, 데이터베이스 또는 둘의 혼합)로 라우트해야합니다.

+0

나는 암호 해독이 필요한 데이터 만 저장하고 ID 열이 있어야만한다는 생각을 좋아합니다. 문제의 기록을 가리킨다. 어떤 유형의 대기 시간과 메모리가 소비되는지를 알기 위해 몇 가지 테스트를하고 평균 사용량을 평균 한 것입니다. 또한 서비스를 사용하여 이러한 레코드를 공유 캐시에로드하는 것에 대해 매우 궁금합니다. 레코드가 하루에 1-2 번 새로 고쳐 졌다고해도 충분하다고 생각합니다. – jreed350z

+0

물론 새로 고침해야 할 빈도를 확인하려면 비즈니스 측면에 문의해야합니다. – jreed350z

관련 문제