PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara membuat daftar semua pernyataan yang disiapkan untuk semua sesi aktif?

Tidak. Pernyataan yang disiapkan AFAIK bersifat lokal untuk backend; backend lain tidak tahu mereka ada. Anda perlu memodifikasi server untuk menambahkan komunikasi antar-proses tambahan untuk memungkinkan satu backend bertanya kepada yang lain tentang pernyataan yang disiapkan.

Backend awalnya muncul untuk berbagi pg_prepared_statements yang sama penyimpanan tabel, sebagai:

SELECT relfilenode FROM pg_class WHERE  relname = 'pg_prepared_statements';

mengembalikan relfilenode yang sama dari backend yang berbeda. Saya terkejut, karena saya pikir pernyataan yang disiapkan tidak ada di disk. Jika mereka ada di disk, saya kira Anda bisa menggunakan fungsi dari modul kontribusi pageinspect untuk membaca tupel mentah atau halaman tabel. Visibilitas akan menjadi masalah; bagaimana Anda tahu apa yang terkait dengan backend yang mati/dihentikan, dan apa yang valid?

Saya mencobanya, dan menemukan bahwa pg_prepared_statements sebenarnya adalah pemandangan:

regress=# SELECT * FROM heap_page_items(get_raw_page('pg_prepared_statements', 1));
ERROR:  cannot get raw page from view "pg_prepared_statements"

khususnya tampilan pg_prepared_statement() fungsi. Jadi tidak ada yang perlu diperiksa. Ini internal backend.

Ini sepertinya salah satu dari "... tapi mengapa Anda melakukan itu?" pertanyaan, yang sering kali merupakan tanda bahwa seseorang bertanya tentang solusi mereka membayangkan masalah mereka yang sebenarnya, daripada menanyakan masalah mereka yang sebenarnya.

Jadi:Mengapa Anda menginginkannya? Apa masalah sebenarnya yang ingin Anda pecahkan?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Terapkan prosedur pemicu tunggal ke banyak tabel yang berbeda

  2. Bagaimana mengonversi waktu ke tanggal di zona waktu lokal selama kueri

  3. PostgreSQL:Bagaimana cara SUM atribut termasuk bidang JSONB, dan mempertahankan bentuk tabel?

  4. Apa cara paling efisien untuk mempertahankan ribuan entitas?

  5. Indeks GIN PostgreSQL lebih lambat dari GIST untuk pg_trgm?