सारांश
mxlc
बाँध चर के लिए वर्णों की अधिकतम संख्या प्रतीत होता है, लेकिन केवल तभी जब चर वर्ण की अर्थ विज्ञान का उपयोग करता है।
विधि
मैं खोजा mxlc
के लिए मेरे ओरेकल समर्थन। लगभग हर लेख में mxlc=00
है, केवल अपवादों में NVARCHAR
या NCHAR
शामिल है। नीचे दिया गया कोड दस्तावेज़ आईडी 552262.1 से कोड पर आधारित है। मैंने परिवर्तनीय आकार (99
और 123 char
) को चारों ओर बदल दिया, और प्रत्येक बार mxlc
को चर आकार के लिए सेट किया गया था यदि चरित्र लंबाई अर्थशास्त्र का उपयोग किया गया था।
कोड
create table t1(ncol1 nvarchar2(100), col1 varchar2(100));
alter session set timed_statistics = true;
alter session set statistics_level=all;
alter session set max_dump_file_size = unlimited;
alter session set events '10046 trace name context forever,level 4';
VAR nvar1 NVARCHAR2(99)
VAR var1 VARCHAR2(123 char)
EXEC :nvar1 := 'nvarchar'
EXEC :var1 := 'varchar'
SELECT * FROM T1 WHERE ncol1 = :nvar1 and col1 = :var1;
ALTER SESSION SET EVENTS '10046 trace name context off';
परिणाम:
Bind#0
oacdty=01 mxl=2000(198) mxlc=99 mal=00 scl=00 pre=00
oacflg=03 fl2=1000010 frm=02 csi=2000 siz=4000 off=0
kxsbbbfp=0e702edc bln=2000 avl=16 flg=05
value=0 6e 0 76 0 61 0 72 0 63 0 68 0 61 0 72
Bind#1
oacdty=01 mxl=2000(369) mxlc=123 mal=00 scl=00 pre=00
oacflg=03 fl2=1000010 frm=01 csi=873 siz=0 off=2000
kxsbbbfp=0e7036ac bln=2000 avl=07 flg=01
value="varchar"
अधिक प्रश्न
आम तौर पर mxl
और mxlc
के बीच संबंधों को समझ में आता है। NVARCHAR
के लिए, मेरे सिस्टम पर यूटीएफ 16, प्रति चरित्र 2 बाइट होंगे, इस प्रकार 198 और 99. मेरा डेटाबेस यूटीएफ 8 है, एक चरित्र को 4 बाइट तक ले जाया जा सकता है। हो सकता है कि ओरेकल का अनुमान है कि औसत आकार 3 बाइट्स होगा, इस प्रकार 123 और 36 9। जाहिर है यह 36 9 से अधिक हो सकता है, शायद यह केवल प्रारंभिक स्मृति आवंटित है, और बाद में यह बढ़ सकता है?
लेकिन आपकी संख्या, 36 और 35, मुझे समझ में नहीं आती।निश्चित रूप से बाइट्स की संख्या वर्णों की संख्या से कम कभी नहीं हो सकती है? क्या ओरेकल खराब अनुमान लगा रहा है, या कुछ क्लाइंट प्रोग्राम खराब डेटा में भेज रहा है?
स्रोत
2012-09-07 05:56:53
हाहा .. बिल्कुल वही नहीं जो मैं उम्मीद कर रहा था। आपको यह टेबल कहां मिला? – Craig
:) यह एक रहस्य है। इसकी [यह] (http://www.amazon.com/Secret-ORACLE-Unleashing-Leveraging-Undocumented/dp/1435705513) पुस्तक से। ऐसा लगता है कि ये पैराम अनियंत्रित हैं। – Annjawn
[स्निपेट] (http://books.google.com/books?id=Go3QBdT-qysC&pg=PA237&lpg=PA237&dq=mxlc+Oracle&source=bl&ots=J4ZRhUvF5s&sig=A9Dkbn6XoNk2PonfkrGKzAYH8u4&hl=hi#v=onepage&q=mxlc%20Oracle&f=false) किताब। – Annjawn