Sobes.tech
Middle

Ինչպե՞ս իմանալ տվյալների բազայի ընթացիկ կապերի քանակը։

sobes.tech AI

Պատասխան AI-ից

PostgreSQL համար.

SELECT count(*) FROM pg_stat_activity;  -- Բոլոր ակտիվ սեսիաները
SELECT count(*) FROM pg_stat_activity WHERE state = 'active'; -- Միայն ընթացիկ կատարվող հարցումները

MySQL համար.

SHOW STATUS LIKE 'Threads_connected'; // Ակտիվ կապերի ներկայիս քանակը
SHOW PROCESSLIST; // Բոլոր գործընթացների ցանկ և նրանց ընթացիկ վիճակը

SQLite համար.

# Կապերի քանակը որոշվում է ծրագրի մակարդակում,
# քանի որ SQLite-ը ֆայլ է և չունի ներքին ցանցային սերվեր:
import sqlite3

def get_connections(db_path):
    # Ընդհանուր առմամբ, սա այն Connection օբյեկտների քանակն է,
    # որոնք ստեղծվել են ծրագրում և դեռ չեն փակվել:
    # SQLite-ը չի պահում "կապ" վիճակ, ինչպես ցանցային SGBD:
    pass 

Python ծրագրում սովորաբար օգտագործվում է կապի պուլ, և ակտիվ կապերի քանակը կարելի է ստանալ նրա API-ով:

from sqlalchemy import create_engine

engine = create_engine('postgresql://user:pass@host:port/db', pool_size=10, max_overflow=2)

# Պուլի մասին տեղեկություններ ստանալու համար
pool_status = engine.pool.status() 
print(pool_status) 
# Օրինակ ելք՝ "Pool size: 10  Connections in pool: 5 Current overflow: 1"
# "Connections in pool" + "Current overflow" - ներկայումս ակտիվ կամ սպասող կապերի քանակը: