Navicat Blog

Exploring PostgreSQL's Foreign Data Wrapper and Statistical Functions Mar 15, 2024 by Robert Gravelle

PostgreSQL, yang terkenal karena ketangguhan dan ekstensibilitasnya, menawarkan sejumlah fungsi yang bermanfaat bagi pengembang dan administrator database. Di antara fungsi-fungsi ini, file_fdw_handler, file_fdw_validator, pg_stat_statements, pg_stat_statements_info, dan pg_stat_statements_reset menonjol sebagai alat yang sangat berharga untuk meningkatkan manajemen database dan pengoptimalan kinerja. Dalam blog hari ini, kita akan mempelajari cara menggunakan semua fungsi ini serta bagaimana Navicat dapat membantu!

Fungsi File

Fungsionalitas Foreign Data Wrapper (FDW) PostgreSQL memungkinkan integrasi sumber data eksternal yang lancar ke dalam database. Fungsi file_fdw_handler dan file_fdw_validator secara khusus dirancang untuk menangani tabel asing yang didukung oleh file.

Fungsi file_fdw_handler berfungsi sebagai antarmuka antara PostgreSQL dan sumber data asing, yang memungkinkan eksekusi query SQL terhadap file yang berada di luar database. Mari kita pertimbangkan contoh di mana kita ingin membuat tabel asing bernama external_data yang merujuk ke file CSV bernama data.csv:


        CREATE SERVER file_server FOREIGN DATA WRAPPER file_fdw;

        CREATE FOREIGN TABLE external_data (
            id INT,
            name TEXT,
            age INT
        ) SERVER file_server OPTIONS (filename '/path/to/data.csv');
    

Sementara itu, fungsi file_fdw_validator memastikan integritas opsi yang disediakan saat membuat tabel asing. Fungsi ini memvalidasi apakah file yang ditentukan ada dan dapat diakses. Sebagai contoh:


        SELECT file_fdw_validator('filename', '/path/to/data.csv');
    

Fungsi Statistika

Modul pg_stat_statements PostgreSQL menyediakan serangkaian fungsi bawaan untuk memantau dan menganalisis kinerja query. Di antaranya, pg_stat_statements, pg_stat_statements_info, dan pg_stat_statements_reset sangat diperlukan untuk mengidentifikasi hambatan dan mengoptimalkan kinerja database.

pg_stat_statements adalah modul yang mencatat statistik tentang pernyataan SQL yang dijalankan oleh server. Modul ini melacak detail seperti jumlah eksekusi, total waktu proses, dan penggunaan sumber daya untuk setiap query unik. Untuk mengaktifkan pg_stat_statements, Anda perlu menambahkannya ke parameter konfigurasi shared_preload_libraries di postgresql.conf:

shared_preload_libraries = 'pg_stat_statements'

Setelah memulai ulang server PostgreSQL, Anda dapat meminta statistik menggunakan:


        SELECT * FROM pg_stat_statements;
    

pg_stat_statements_info menyediakan informasi tambahan tentang modul pg_stat_statements, seperti nomor versi dan waktu pengaturan ulang terakhir. Hal ini dapat ditanyakan sebagai berikut:


        SELECT * FROM pg_stat_statements_info;
    

Terakhir, pg_stat_statements_reset akan mengatur ulang statistik yang dikumpulkan oleh pg_stat_statements, sehingga Anda dapat memulai lagi dengan pemantauan kinerja. Cukup jalankan:


        SELECT pg_stat_statements_reset();
    

Bekerja dengan Fungsi Bawaan PostgreSQL di Navicat

Kita dapat mengakses semua fungsi di atas di Navicat for PostgreSQL atau Navicat Premium 16 dengan memperluas bagian “Fungsi” di panel Navigation:

PostgreSQL_functions_in_Navicat (113K)

Untuk menjalankan fungsi, cukup memilihnya dari dari daftar Objects dan klik tombol Jalankan Fungsi:

execute_function_button (62K)

Ini akan membawa dialog dimana Anda dapat mensuplai input value parameter:

input_parameter_dialog (33K)

Klik tombol OK untuk menjalankani fungsi dan tampilkan hasil (atau Batal untuk membatalkan):

pg_stat_statements_results (330K)

Fungsi bawaan PostgreSQL, termasuk file_fdw_handler, file_fdw_validator, pg_stat_statements, pg_stat_statements_info, dan pg_stat_statements_reset, memainkan peran penting dalam meningkatkan manajemen database dan mengoptimalkan kinerja query. Dengan memanfaatkan fungsi-fungsi ini secara efektif, pengembang dan administrator dapat menyederhanakan operasi dan memastikan pemanfaatan kemampuan PostgreSQL secara optimal.

Navicat Blog
Feed Entri
Arsip Blog
Bagikan