ใน Postgres 8.4 เมื่อคุณทำ:
select * from pg_stat_all_indexes where relname = 'table_name';
มันส่งคืนฟิลด์ idx_tup_read และ idx_tup_fetch ความแตกต่างคืออะไร
ใน Postgres 8.4 เมื่อคุณทำ:
select * from pg_stat_all_indexes where relname = 'table_name';
มันส่งคืนฟิลด์ idx_tup_read และ idx_tup_fetch ความแตกต่างคืออะไร
คำตอบ:
เมื่อดูซอร์สโค้ดของมุมมองคุณจะเห็นว่าidx_tup_read
เป็นผลลัพธ์ของการโทรpg_stat_get_tuples_returned()
และidx_tup_fetch
เป็นผลลัพธ์ของการโทรpg_stat_get_tuples_fetched()
คู่มืออธิบายทั้งสองฟังก์ชั่นดังต่อไปนี้:
pg_stat_get_tuples_returned (OID)
จำนวนแถวที่อ่านโดยการสแกนตามลำดับเมื่ออาร์กิวเมนต์เป็นตารางหรือจำนวนรายการดัชนีที่ส่งคืนเมื่ออาร์กิวเมนต์เป็นดัชนี
pg_stat_get_tuples_fetched (OID)
จำนวนแถวของตารางที่ดึงมาจากการสแกนบิตแมปเมื่ออาร์กิวเมนต์เป็นตารางหรือแถวของตารางที่ดึงมาจากการสแกนดัชนีอย่างง่ายโดยใช้ดัชนีเมื่ออาร์กิวเมนต์เป็นดัชนี
จากเอกสาร PostgreSQL ,
idx_tup_read is number of index entries returned by scans on this index
idx_tup_fetch is number of live table rows fetched by simple index scans using this index
ดังนั้นread
s คือเมื่อดัชนีให้ตำแหน่งกลับของแถวที่ต้องการและfetch
es คือเมื่อดัชนีให้กลับแถวของตารางด้วยตนเอง
หน้าเอกสารอย่างเป็นทางการแจ้งว่ามีความแตกต่างระหว่างกันปรากฏขึ้น:
ในทุกกรณีเหล่านี้จะมากกว่าidx_tup_read
idx_tup_fetch