Форум сайта python.su
Добрый вечер.
Изучаю Pylons + SqlAlchemy (раньше использовал Django).
Как в рамках одной “сессии” (запрос - ответ) узнать какие SQL запросы получились и время их выполнения?
Все что пока нашел по теме - http://groups.google.com/group/sqlalchemy/browse_thread/thread/479a8cc188e933c3/e3519853143e9036?lnk=gst&q=execution+time#e3519853143e9036
Заранее всем спасибо.
Офлайн
Не знаю как насчет времени выполнения запроса (я такое смотрю в логах СУБД сервера), а сами запросы видно при включении логирования – http://www.sqlalchemy.org/docs/05/dbengine.html#configuring-logging
Офлайн
Вечер добрый!
Вот мои наработки по теме.
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:',
echo=True,
module=db #Здесь указываем модуль с интерфейсом DBAPI(2)
)
from sqlite3 import *
def connect(*args, **kwargs):
return NewConnection(*args, **kwargs)
class NewCursor(Cursor):
def execute(self, *args, **kwargs):
print 'Begin'
res = super(self.__class__, self).execute(*args, **kwargs)
print 'End'
return res
class NewConnection(Connection):
def cursor(self):
return NewCursor(self)
def execute(self, *args, **kwargs):
print 'Begin'
res = super(self.__class__, self).execute(*args, **kwargs)
print 'End'
return res
Офлайн
Так будет правильнее:
...
def execute(self, *args, **kwargs):
print 'Begin'
try:
return super(self.__class__, self).execute(*args, **kwargs)
finally:
print 'End'
...
def execute(self, *args, **kwargs):
print 'Begin'
try:
return super(self.__class__, self).execute(*args, **kwargs)
finally:
print 'End'
Офлайн
:)
http://techspot.zzzeek.org/?p=31
Может подойдёт…
Офлайн
ofigetitelno, вот спасибо!
Подошло :)
Офлайн