2011-02-01 9 views
14

क्या मेरे पास v$parameter दृश्य तक पहुंच नहीं है, तो क्या मैं अपने ओरेकल डेटाबेस के ब्लॉक आकार को बता सकता हूं?मेरी ब्लॉक आकार ऑरैकल क्वेरी करें

धन्यवाद!

एफ।

+0

नोट: ओरेकल प्रत्येक tablespaspace के लिए अलग ब्लॉकसाइज का समर्थन करता है। तो v $ पैरामीटर में valuse सिर्फ एक "डिफ़ॉल्ट" है। – ibre5041

उत्तर

16

आप ऐसा कर सकता है:

select distinct bytes/blocks from user_segments; 
+0

ने ऐसा किया। धन्यवाद। – filippo

+1

यह क्वेरी बहुत महंगी है, v $ पैरामीटर से चुनिंदा मूल्य जैसे कुछ पर विचार करें, जहां नाम = 'db_block_size' –

+0

@ गुइडो लिंडर्स: "अगर मेरे पास v $ पैरामीटर दृश्य तक पहुंच नहीं है"! –

1

हाँ, तो आप एक बड़ी समस्या है। उपयोगकर्ता_ सेगमेंट क्वेरी करना वास्तव में धीमा हो सकता है, खासकर जब एसएपी या इंफोर बाआन चलाते हैं जो दस हजार सेगमेंट बनाते हैं और डेटा डिक्शनरी को खंडित करते हैं। सबसे अच्छा है कि आप अपने डीबीए को किसी भी तरह से पहुंच प्रदान करें, शायद v_ $ के साथ एक दृश्य के माध्यम से।

वैकल्पिक, जो बेहतर प्रदर्शन करता है: जब आप सेगमेंट बना सकते हैं, तो आपके पास कुछ टेबलस्पेस एक्सेस है (कृपया ध्यान दें कि जब आपके पास कोई सेगमेंट नहीं है तो विशिष्ट काम नहीं करता है)। इस सूची में, आम तौर पर कम है उदाहरण के उपयोग के लिए इतना:

चयन बाइट्स/user_ts_quotas

कि अभी भी स्थानीय डीबीए के साथ एक सामाजिक इंजीनियरिंग समस्या के साथ आप छोड़ देता है जब उपयोगकर्ता तो प्रतिबंधित है यह एक नहीं है कि से ब्लॉक कोटा :-)

+0

वास्तव में? वह ब्लॉक आकार जानना चाहता था और वी $ पैरामीटर दृश्य तक पहुंच नहीं थी। भले ही उपयोगकर्ता_सेगल्स के खिलाफ क्वेरी में 5 मिनट लग गए, फिर भी उन्हें 5 मिनट में जवाब मिला। जब तक डेटाबेस ब्लॉक आकार को दिन में कई बार जांचने की कोई अनोखी आवश्यकता नहीं होती है, तो ऐसा लगता है कि ओटीटी को डीबीए से विशेषाधिकार के लिए और अधिक तेज़ी से पता लगाने के लिए कहा जाता है? –

2

ऑरैकल में, ब्लॉक आकार प्रति टेबल स्पेस सेट किया गया है। आप user_tablespaces या dba_tablespaces से पूछ सकते हैं (यदि आपके पास पहुंच है) और प्रत्येक टेबल स्पेस के लिए ब्लॉक आकार देखें; ये विचार आमतौर पर तुरंत चलते हैं।

आप उन 2 में से किसी भी dba_tables, user_tables, या all_tables में शामिल हो सकते हैं और बाइट्स में तालिका का कुल आकार प्राप्त करने के लिए ब्लॉक आकार से ब्लॉक की संख्या गुणा कर सकते हैं (एमबी में आकार प्राप्त करने के लिए 1024 * 1024 से विभाजित करें , आदि)

1

के बाद से ब्लॉक आकार प्रत्येक टेबल-स्पेस आप बेहतर निम्न क्वेरी का उपयोग के लिए अलग है:

select block_size, tablespace_name from dba_tablespaces; 
संबंधित मुद्दे