2011-06-23 27 views
2

我在heroku上運行我的應用程序。這是一個數據庫密集型應用程序,使用大約150個表格。因此它非常緩慢。Rails3在每個請求上加載模型架構

我已經配置newrelic來縮放它並找出問題。 然後我開始知道,rails爲每個使用的模型啓動一個額外的查詢,以在每個請求上加載它的模式。

例如

SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull 
FROM pg_attribute a LEFT JOIN pg_attrdef d 
ON a.attrelid = d.adrelid AND a.attnum = d.adnum 
WHERE a.attrelid = '"sub_regions"'::regclass 
AND a.attnum > 0 AND NOT a.attisdropped 
ORDER BY a.attnum 

有什麼辦法,我可以防止鐵軌上加載每個請求模型的架構?

任何幫助將不勝感激。

感謝

回答

2

你可以在production.rb文件中檢查config.cache_classes = true嗎?

+0

謝謝老兄。現在已經解決了。 – MKumar

0

當然,你可以選擇你想用ActiveRecord的select加載哪些列。

參見段落2.5 Selecting Specific Fields,here

+2

我不認爲這個問題是關於選擇查詢中的屬性。 我面臨着完全相同的問題......它似乎喜歡鐵軌在每一個「加載模型」的請求中發射這些查詢。在此之後查詢模型。 我以爲只有在開發模式下,rails纔會在每個請求中加載模型,但似乎每次都在生產模式下加載模型。 –

相關問題