하드웨어 측면에서 두 개의 동일한 서버가 있으며 최소 소프트웨어가 설치된 Windows Server 2008 r2의 표준 설치입니다 (기본적으로 내 코드 및 jvm 등의 필수 항목).
한 서버에서 두 번째 서버 postgresql 9.1에서 SQL Server 2005를 실행 중입니다. 이 두 서버의 성능 차이는 놀랍습니다. postgresql에서 너무 나빠서 초기 "SQL 서버 라이센스를 지불하는 대신 postgresql을 사용하십시오"라는 연설을 상사에게 후회하고 있습니다. 우리는 동일한 명령에 대해 30 초와 15 분의 차이를 이야기하고 있으며, 이것은 하나의 명령이 아니라 내가 던지는 쿼리 또는 명령입니다. 둘 다 거의 동일한 데이터를 가지고 있으며 (레코드는 다른 순서로 삽입되었습니다) 두 데이터베이스는 모두 동일한 구조 / 인덱스 등을 가지고 있습니다.
그러나 성능 조정의 문제 일뿐입니다. 문제는 SQL 서버가 서버에서 32GB의 램을 거의 사용하고 있지만 postgresl은 실제로 세부 사항을 파악하지 못했지만 공연보다 작지 않습니다.
postgresql에서 20 기가 이상의 램을 사용하려면 어떻게해야합니까? 이 서버는이 데이터베이스 용으로 특별히 제작되었으므로 데이터베이스 및 지원 프로세스에서 사용하지 않는 램은 제 생각에 낭비됩니다.
SET effective_cache_size=18G;
(기본 설정은 매우 낮음) BTW : 64 비트 시스템이라고 가정 (PTE 없음)