Я оптимизировать свой код, который делает слишком много запросов на стартеСтранно Джанго «» BEGIN»- PARAMS =()» запрос
Я получаю почти до минимума сейчас, и начал. встретив следующее:
QUERY = 'BEGIN' - PARAMS =()
Это, кажется, используется почти каждый раз, и практически удваивает количество запросов сделал - но я не думаю, что это на самом деле делать что-нибудь (кроме открывает подключение к DB и тратить время и процессор).
Может кто-нибудь сказать мне, что это такое, почему это необходимо, и если это не так, как я могу его удалить?
Я просматриваю свои запросы, используя django.db.connection.queries
.
Django - 1.8 Python - 3.4 с sqlite как DB.
EDIT:
Предоставление примеров контекста немного странным, так как это почти каждый поступок я беру что требует запросов приводит этот запрос на всплывающие окна (наряду с запросом я хочу).
Но вот несколько примеров:
Создание объекта, который имеет метку времени по умолчанию в настоящее время:
session = Session()
session.save()
Предоставляет следующие запросы:
QUERY = 'BEGIN' - PARAMS =()
QUERY = 'INSERT INTO "tracker_session" ("name", "session_date", "number_of_courts", "finished", "session_tracker") VALUES (%s, %s, %s, %s, %s)' - PARAMS = ('', '2015-06-17', 4, False, '')
Аналогично обновляя группу объекты для изменения определенного атрибута:
()здесь только объект с атрибутом ManyToMany
- players
)
self.players.all().update(available=True)
выходы:
QUERY = 'BEGIN' - PARAMS =()
QUERY = 'UPDATE "tracker_person" SET "available" = %s WHERE "tracker_person"."id" IN (SELECT U0."id" AS Col1 FROM "tracker_person" U0 INNER JOIN "tracker_session_players" U1 ON (U0."id" = U1."person_id") WHERE U1."session_id" = %s)' - PARAMS = (True, 19)
второй запрос всегда то, что я хочу, я понятия не имею, что первые QUERY = 'BEGIN' - PARAMS =()
для.
Без контекста почти невозможно сказать что-то об этом утверждении. –
@KlausD. Добавлены некоторые примеры, которые помогут в контексте, сообщите мне, если вам нужно что-то еще. – Scironic