Nhibernate प्रोफाइलर क्वेरी योजना के बारे में त्रुटि संदेशों में से बहुत से पता चलता है:अलग पैरामीटर आकार अक्षम क्वेरी योजना कैश में परिणाम
अलग पैरामीटर आकार अक्षम क्वेरी योजना कैश उपयोग होता
यह भी एक में ले जाता है http://nhprof.com/Learn/Alerts/UncachedQueryPlan में स्पष्टीकरण और सत्र निर्माण करते समय prepare_sql = true
पैरामीटर के उपयोग के बारे में आपको चेतावनी देता है। मैं इसे धाराप्रवाह के साथ इस तरह से करता हूं:
.ExposeConfiguration(configuration => configuration
.SetProperty("current_session_context_class", "thread_static")
.SetProperty("prepare_sql", "true")
.SetProperty("generate_statistics", "true")
)
लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है क्योंकि त्रुटि संदेश अभी भी हैं। क्या यह ओरेकल क्लाइंट कॉन्फ़िगरेशन पर एक सीमा है या क्या मैं इसे गलत कर रहा हूं?
संपादित इस बारे में कुछ और जानकारी प्रदान करने के लिए ...
मेरी भंडार में मैं इस
session.Query<TEntity>.Where(predicate).ToList();
करते हैं और इस कॉल
var value = ParameterRepository.First(p => (p.Pipeline.Id == pipelineId && p.Name == name));
उदाहरण उन लोगों के लिए है इस कॉल से उत्पन्न दो एसक्यूएल हैं और निबर्ननेट प्रोफाइलर के रूप में दिखाता है "अलग पैरामीटर आकार परिणामस्वरूप अक्षम क्वेरी प्लान कैश उम्र "
select GUID1_12_,
PARAMETER2_12_,
PARAMETER3_12_,
GUID4_12_
from (select pipelineex0_.GUID_PIPELINE_EXEC_PARAMETER as GUID1_12_,
pipelineex0_.PARAMETER_NAME as PARAMETER2_12_,
pipelineex0_.PARAMETER_VALUE as PARAMETER3_12_,
pipelineex0_.GUID_PIPELINE_TRACKING as GUID4_12_
from FCT_PIPELINE_EXEC_PARAMETER pipelineex0_
where pipelineex0_.GUID_PIPELINE_TRACKING = 'A5916E73CF1E406DA26F65C24BFBF694' /* :p0 */
and pipelineex0_.PARAMETER_NAME = 'lid' /* :p1 */)
where rownum <= 1 /* :p2 */
और दूसरा
select GUID1_12_,
PARAMETER2_12_,
PARAMETER3_12_,
GUID4_12_
from (select pipelineex0_.GUID_PIPELINE_EXEC_PARAMETER as GUID1_12_,
pipelineex0_.PARAMETER_NAME as PARAMETER2_12_,
pipelineex0_.PARAMETER_VALUE as PARAMETER3_12_,
pipelineex0_.GUID_PIPELINE_TRACKING as GUID4_12_
from FCT_PIPELINE_EXEC_PARAMETER pipelineex0_
where pipelineex0_.GUID_PIPELINE_TRACKING = 'A5916E73CF1E406DA26F65C24BFBF694' /* :p0 */
and pipelineex0_.PARAMETER_NAME = 'period' /* :p1 */)
where rownum <= 1 /* :p2 */
IMHO 'ढक्कन' और 'अवधि' है कि विभिन्न क्वेरी योजनाओं पैदा कर रहा है के साथ इस PARAMETER_NAME है। अग्रिम
तो विभिन्न ऑरैक निष्पादन योजनाएं क्या हैं? – steve
अब मैं भरोसा नहीं करता कि ओरेकल क्वेरी प्लान कैसा है, लेकिन परिदृश्य काफी समान है [जिसने इस मुद्दे के बारे में बताए गए विवरण में बताया है) (http://nhprof.com/Learn/Alerts/UncachedQueryPlan)। संक्षेप में यह कहता है कि निपुणता को एक दोस्ताना क्वेरी प्लान way_ में querie निष्पादित करने के लिए पुष्टि की जानी चाहिए और, जो मैं देखता हूं उससे मैं काम नहीं करता हूं। – guillem
अच्छी तरह से, मैं एक और विश्लेषणात्मक दृष्टिकोण की सिफारिश करता हूं, अन्यथा यह परीक्षण और त्रुटि है। त्रुटियां क्या हैं? – steve