Kā izstrādātājs bieži vien strādāju ar dažādām datu bāzēm, kas prasa zināšanas par SQL (strukturētā vaicājuma valoda). Šī jaudīgā programmēšanas valoda piedāvā iespēju piekļūt relāciju datu bāzēs saglabātajiem datiem, tos pārvaldīt un manipulēt ar tiem. Viens izplatīts scenārijs, kas var rasties šādu darbību laikā, ir nepieciešamība identificēt pašreizējos savienojumus ar datu bāzi. Šai prasībai var būt dažādi iemesli, piemēram, datu bāzes veiktspējas regulēšana, dīkstāves savienojumu vai pārmērīgas lietošanas gadījumu identificēšana, kā arī citi.
Izpratne par datubāzes savienojumiem ir būtiska efektīvai SQL programmēšanai un datubāzes pārvaldībai. SQL nodrošina mums risinājumu šo savienojumu uzraudzībai, izmantojot iebūvētās funkcijas un vaicājumus. Tas nav sarežģīts uzdevums, taču tāds, kam nepieciešama zināma izpratne un precizitāte. Turpmākajās sadaļās mēs padziļināti aplūkosim, kā, izmantojot SQL, parādīt pašreizējos savienojumus ar datubāzi, un izskaidrosim katru izmantotā koda soli.
Pg_stat_activity View izpēte
PostgreSQL nodrošina sistēmas kataloga skatu, kas pazīstams kā pg_stat_activity , ko datubāzes administratori var izmantot, lai iegūtu informāciju par pašreizējiem savienojumiem/aktīvajiem procesiem datubāzē. Šajā skatā katram servera procesam tiek parādīta viena rinda, kurā redzama informācija par šī procesa pašreizējo aktivitāti.
SELECT * FROM pg_stat_activity;
Palaižot iepriekš minēto vaicājumu, jūs izgūsit tādus datus kā pievienotās lietojumprogrammas nosaukums, datu bāzes nosaukums, klienta adrese, pašreizējais vaicājums, kas tiek izpildīts, un tā tālāk.
Vaicājuma koda izpratne
- The SELECT * komanda tiek izmantota, lai atlasītu visas tabulas/skata kolonnas.
- The NO atslēgvārds norāda tabulu vai skatu, kurā dati tiek iegūti. Šajā gadījumā tā ir pg_stat_activity, kataloga skats, kurā ir informācija par servera procesiem vai savienojumiem.
Dīkstāves savienojumu filtrēšana
Bieži vien jūs, iespējams, neinteresē zināt visus savienojumus, bet tikai tos, kas ir dīkstāvē. Šādus savienojumus var filtrēt, izmantojot stāvokļa lauku skatā pg_stat_activity.
SELECT * FROM pg_stat_activity WHERE state = 'idle';
Šis kods atgriezīs tikai tos savienojumus, kuru stāvoklis ir “dīkstāvē”, ti, savienojumus, kas pašlaik netiek izmantoti nevienam aktīvam uzdevumam.
Citu SQL funkciju un bibliotēku loma
Papildus pamata SQL un tā funkcionalitātēm pastāv daudzas SQL bibliotēkas un funkcijas, kas vēl vairāk uzlabo SQL iespējas, strādājot ar datubāzēm. Piemēri ietver, bet neaprobežojas ar, SQLAlchemy for Python, JDBC un JPA for Java, kas nodrošina abstrakciju virs SQL ērtākai un efektīvākai programmēšanai.
Atcerieties, ka efektīva datubāzu savienojumu pārvaldība ir izšķirošs aspekts datubāzu pārvaldībā, to veiktspējas uzlabošanā un drošības nodrošināšanā. Tādēļ šīs zināšanas veido kvalitatīvas SQL programmēšanas un efektīvas datubāzu pārvaldības stūrakmeni.
