powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [pyodbc] Очень сильно грузит SQL сервер
5 сообщений из 5, страница 1 из 1
[pyodbc] Очень сильно грузит SQL сервер
    #38854773
DeeZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть база MSSQL на 4000 записей.
idnameipcomminity1host1192.168.0.1pblic2host2192.168.0.2pblic3host3192.168.0.3pblic..
Скрипт на Python выбирает нужные поля и проходя по коммутаторам выполняет кое-какие действия по snmp.
Во время выполнения скрипта SQL сервер висит так что никто больше не может к нему обратиться.


Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
#!/usr/bin/env python
import netsnmp
import pyodbc

cnx = pyodbc.connect("DSN=srv;DATABASE=base;UID=user;PWD=123" )
cursor = cnx.cursor()
cursor.execute("SELECT [IP],[Community],[Name] FROM [Nodes]")

def snget(ip, Communily, oid=".1.3.6.1.2.1.1.1.0" ):
    session = netsnmp.Session( DestHost=ip, Version=2, Community=Communily)
    vars = netsnmp.VarList( netsnmp.Varbind(oid) )
    return session.get(vars)

row = cursor.fetchone()
while row:
   IP = row[0]
   Community   = row[1]
   Name = row[2]
   model = snget(IP,Community)
   if model[0] == None : 
       row = cursor.fetchone()
       continue
   fw_ver = .1.3.6.1.2.1.16.19.2.0
   fw = snget(IP,Community,oid=fw_ver)
   print Name,IP,model[0],fw[0]
   row = cursor.fetchone()


Здесь много всего. приведена только 2 snmp команды.

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
freetds.conf
[global]
    tds version = 8.0
    port = 1433
    text size = 64512
    try server login = yes
    try domain login = no
    client charset = UTF-8
[srv]
    host = 172.25.2.1
    port = 1433
    tds version = 8.0


odbc.ini 
[srv]
    Description=Server
    Driver=FreeTDS
    Servername=srv


Установлен Python 2.7.6, python-netsnmp 5.7.2, python-pyodbc 3.0.6-2, freetds 0.91-5

Есть смутное подозрение что при каждом прохождении цикла сервер выдает все записи те 4000 (в каждом отснифаном пакете-ответе больше чем одна строка). Скрипт смотрит 1, а что бы посмотреть следующею - опять запрашивает (получает) полный список, что приводит к лавинообразному росту нагрузки. Подскажите куда копать? как оптимизировать запрос\скрипт\настройки tds,odbc?
...
Рейтинг: 0 / 0
[pyodbc] Очень сильно грузит SQL сервер
    #38855147
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
смотри запросы которые уходят на сервер. выложи их сюда.
...
Рейтинг: 0 / 0
[pyodbc] Очень сильно грузит SQL сервер
    #38855178
DeeZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow, в мониторе активности я этого запроса не вижу (тк сервер рабочий, помимо моего еще куча всего висит, тяжело найти свой). самое близкое что нашел "select * from nodes"
Либо я не там смотрю.
...
Рейтинг: 0 / 0
[pyodbc] Очень сильно грузит SQL сервер
    #38855250
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там можно фильтровать по куче параметров.
...
Рейтинг: 0 / 0
[pyodbc] Очень сильно грузит SQL сервер
    #38855772
DeeZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow, не разобрался, увы.
Сделал по-другом. Делаю полную выгрузку и закрываю подключение к базе. тогда ничего не тупит.

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
#row = cursor.fetchone()
#while row:
rows = cursor.fetchall()
cursor.close()
del cursor
cnx.close()
for row in rows:
...
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [pyodbc] Очень сильно грузит SQL сервер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]