एक दो चीजें बाहर कूद जाती हैं।
सबसे पहले, यदि इस कोड को 2000 बार कॉल किया जा रहा है और चलाने के लिए 250ms अतिरिक्त लेता है, तो यह ~0.125ms प्रति कॉल है जो Arel को SQL में बदलने के लिए है, जो अवास्तविक नहीं है।
दूसरे, मैं रूबी में रेंज के आंतरिक के बारे में निश्चित नहीं हूं, लेकिन lower..upper
हो सकता है कि गणना कर रहे हों जैसे कि सीमा का आकार और अन्य चीजें, जो एक बड़ा प्रदर्शन हिट होगा।
क्या आप निम्न के साथ समान प्रदर्शन को हिट होते हुए देखते हैं?
sum = Table.
where(:id => id).
where(:created_at => "BETWEEN ? and ?", lower, upper).
sum(:my_column)