ใช่เป็นไปได้ที่จะล้างทั้งบัฟเฟอร์ที่ใช้ร่วมกันแคช postgres และแคชของระบบปฏิบัติการ วิธีแก้ปัญหาสำหรับWindows ... คนอื่น ๆ ได้ให้โซลูชัน linux แล้ว
อย่างที่หลาย ๆ คนพูดไปแล้วในการล้างบัฟเฟอร์ที่แชร์คุณสามารถรีสตาร์ท Postgres ได้ (ไม่จำเป็นต้องรีสตาร์ทเซิร์ฟเวอร์) แต่การทำเช่นนี้จะไม่ล้างแคชของระบบปฏิบัติการ
หากต้องการล้างแคช OS ที่ใช้โดย Postgres หลังจากหยุดบริการแล้วให้ใช้RamMap ที่ยอดเยี่ยม ( https://technet.microsoft.com/en-us/sysinternals/rammap ) จาก Sysinternals Suite ที่ยอดเยี่ยม เมื่อคุณรัน RamMap แล้วให้คลิก "Empty" -> "Empty Standby List" ในเมนูหลัก
รีสตาร์ท Postgres และคุณจะเห็นว่าแบบสอบถามต่อไปของคุณจะช้าเนื่องจากไม่มีแคชเลย
นอกจากนี้คุณยังสามารถรัน RamMap ได้โดยไม่ต้องปิด Postgres และอาจมีผลลัพธ์ "ไม่มีแคช" ที่คุณต้องการเนื่องจากตามที่คนทั่วไปกล่าวไปแล้วบัฟเฟอร์ที่ใช้ร่วมกันมักให้ผลกระทบเพียงเล็กน้อยเมื่อเทียบกับแคชของระบบปฏิบัติการ แต่สำหรับการทดสอบที่เชื่อถือได้ฉันอยากจะหยุด postgres ทั้งหมดก่อนที่จะล้างแคชของระบบปฏิบัติการเพื่อให้แน่ใจ
หมายเหตุ: AFAIK ฉันไม่แนะนำให้ล้างสิ่งอื่น ๆ นอกเหนือจาก "รายการสแตนด์บาย" เมื่อใช้ RamMap เนื่องจากมีการใช้ข้อมูลอื่นอยู่และคุณอาจทำให้เกิดปัญหา / ข้อมูลหลวมได้หากคุณทำเช่นนั้น โปรดจำไว้ว่าคุณกำลังล้างหน่วยความจำไม่เพียง แต่ใช้กับไฟล์ postgres เท่านั้น แต่ยังมีแอปและระบบปฏิบัติการอื่น ๆ ด้วย
ขอแสดงความนับถือ Thiago L.