Форум сайта python.su
Здравствуйте питонеры.
Есть программа, которая пишется сейчас для взаимодействия с БД Оракл.
Так вот, при выполнении 60-70 паралельных селектов, выдается ошибка ORA-12520.
Также, если открыть программу два или три раза, во время отладки оной, и выполнять различные селекты (в программе же), то опять выскакивает данная ошибка, убиваем все открытые процессы программ и ошибка не появляется пока опять не накопится много процессов программ.
Код который связан с БД:
Функция выполняющая селекты и count.
В нее поступает where из списка where0 - where11, каждый список whereN состоит из 2-10 условий.
def count(where):
connection = data_info.data_info().connection
cursor = cx_Oracle.Cursor(connection)
Table = data_info.data_info().Get_Table()
Schema = data_info.data_info().Get_Schema()
sql = "select count(*) from %s.%s where %s" % (Schema, Table, where)
cursor.execute(sql)
count=cursor.fetchall()
cursor.close()
connection.close()
return count
def OpenDB(dblogin,dbpass,dbtns):
try:
import cx_Oracle
except ImportError,info:
error = ("Import Error: %s" % (info))
msgbox.Error(error)
exit()
if cx_Oracle.version<'3.0':
error = ("Very old version of cx_Oracle : %s" % (cx_Oracle.version))
msgbox.Error(error)
exit()
try:
connection = cx_Oracle.connect("%s/%s@%s" % (dblogin, dbpass, dbtns))
except cx_Oracle.DatabaseError, info:
error = ("Database Error: %s" % (info))
msgbox.Error(error)
exit()
return connection
def Get_DB_Tables(connection, SelSchema):
cursor = cx_Oracle.Cursor(connection)
sql = ("select TABLE_NAME from dba_tables WHERE OWNER = '%s'" % (SelSchema))
cursor.execute(sql)
tables = cursor.fetchall()
return tables
cursor.close()
def Get_Data(connection, Table, Schema):
cursor = cx_Oracle.Cursor(connection)
sql = ("select * from %s.%s" % (Schema, Table))
cursor.execute(sql)
data = cursor.fetchall()
cursor.close()
data = list(chain(*data))
data = len(data)
return data
Офлайн
up. Очень нужна помощь, скоро преддипломный проект сдавать..
Офлайн