編輯:主題: 有沒有一種方法可以強制SqlAlchemy預填充會話儘可能?從數據庫儘可能多地同步狀態(此時不會有數據庫更新)。SqlAlchemy預讀緩存?
我有一些溫和的性能問題,我相信我已將它追溯到SqlAlchemy。我確信我的聲明和db-schema中有可以改善時間的變化,但這不是我在這裏問的。我的SqlAlchemy聲明定義了8個類,我的數據庫有11個表,其中只有7個表擁有我的真實數據,總共我的數據庫有800個記錄(所有Integers和UnicodeText)。我的數據庫引擎是sqlite,實際大小目前是242Kb。
真的,實體的數量非常小,但許多表關係具有遞歸行爲(5-6級深)。我的問題始於SA爲我做的美妙的automagic,並且我不願意用我自己的python類正確提取數據。
我有ORM屬性訪問分散在各種迭代器,遞歸評估器,直到我的文件I/O流。對這些屬性的訪問基本上是非線性的,有時我會查找,我的調用堆棧在SqlAlchemy中消失了很長一段時間,並且我得到了很多單例查詢。
我使用的主要是默認的SA設置(python 2.7.2,sqlalchemy 0.7)。
考慮到RAM不是問題,而且我的數據庫很小(暫時),有沒有一種方法可以強制SqlAlchemy儘可能地預先填充會話。我希望如果我只是將原始數據加載到內存中,那麼我最需要做的就是動態追加一些連接(幾乎所有查詢都很直接)。
我希望有5分鐘的修復時間,以便儘快運行一些報告。我的TODO的下個月可能會充滿直接表查詢和更緊密的業務邏輯,可以管理元組。
你的問題過於冗長,你的問題到底是什麼? – Wessie 2013-04-29 13:31:47
這聽起來像你想像一個數據庫一樣使用SqlAlchemy,而不是像一個ORM。 – 2013-04-29 17:30:31
我不能只是查詢表(或實際上,這是否會工作,我想要?),它的ORM位,我掛了。我有很多多態性和我所依賴的關係。 – user2097818 2013-04-29 17:42:04