ভারচার সেট করার পরিণতিগুলি কী (8000)?


22

যেহেতু বার্চার ক্ষেত্রের আকারের সাথে ডিস্কের স্থান আনুপাতিক গ্রহণ করে, varchar(8000)এসকিউএল সার্ভারে যেমন সর্বদা সর্বাধিক হিসাবে ভার্চারটি সংজ্ঞায়িত করা না হয় তার কোন কারণ আছে কি ?

টেবিল তৈরি করতে, যদি আমি কাউকে করণীয় করতে দেখি তবে varchar(100)তাদের উচিত বলুন যে আপনার উচিত নয় varchar(8000)?


আমি মনে করি আমাদের সারণী তৈরির ব্যবহার এবং সঞ্চিত প্রক্রিয়াগুলির পরামিতি ঘোষণায় ব্যবহারের মধ্যে এখানে পার্থক্য করতে হবে। দ্বিতীয় ব্যাখ্যার জন্য আমার প্রশ্নটি দেখুন ডিবিএ.স্ট্যাকেক্সেঞ্জার.কম
সেকশনস /

উত্তর:


18
  • দৈর্ঘ্য হ'ল ডেটাতে একটি সীমাবদ্ধতা (যেমন চেক, এফকে, ন্যূনল ইত্যাদি)
  • পারফরম্যান্স যখন সারি 8060 বাইট ছাড়িয়ে যায়
  • অনন্য বাধা বা সূচক থাকতে পারে না (কী কলামের প্রস্থ অবশ্যই <900 হবে)
  • ডিফল্টটি হ'ল প্রচুর ট্রেলিং স্পেস সংরক্ষণের জন্য এএনএসআই প্যাডিং চালু = সম্ভাবনা
  • এসকিউএল সার্ভারটি ধরে রাখবে গড় বাছাইয়ের গড় দৈর্ঘ্য 4000, এর ভিত্তিতে মেমরি বরাদ্দ করা (এটি করার জন্য একটি লিঙ্ক খুঁজে বের করা দরকার তবে আমি যখন মরিচা করি তখন :-)

সংক্ষিপ্তসার: এটি করবেন না।


পারফরম্যান্স যখন সারি 8060 বাইট ছাড়িয়ে যায় । এটি প্রকৃত ব্যবহৃত বাইটগুলি বোঝায় এবং সর্বাধিক অনুমোদিত বাইটগুলি না?
bernd_k

@ বারেন্ড_ কে: ৮০60০ = এক সারিতে ডেটা সর্বাধিক পরিমাণে যা একক ৮১৯২ পৃষ্ঠায় মাপসই হবে। সারি ওভারহেড অন্তর্ভুক্ত করুন। রিমাইন্ডার (132 বাইট) = পৃষ্ঠা ওভারহেড
জিবিএন

এর অর্থ হল যে বড় আকারটি সত্যই ব্যবহৃত হয়, খাঁটি সত্য দ্বারা নয়, এটির ব্যবহারের অনুমতি দেওয়া হলে কর্মক্ষমতা হ্রাস পায়।
bernd_k

@ বারেন্ড_ কে: যে কোনও পারফরম্যান্স হ্রাস হ্রাস হয় 1.. ধরণের ইত্যাদির জন্য মেমরি বরাদ্দ ২. সারি ওভারফ্লো (> 8060 বাইট)। প্রতিটি বর্ণাবারে (৮০০০) দশটি অক্ষর থাকার বিষয়টি অপ্রাসঙ্গিক, যতক্ষণ না এই শর্তগুলি পূরণ হয় (এসকিউএল পরে সূচি কীগুলির জন্য সম্ভাব্য ত্রুটি সম্পর্কে সতর্ক করবে)
জিবিএন

100 বাইট দৈর্ঘ্যের ক্ষেত্রগুলিতে ভরাচর (100) কলাম দিয়ে একটি টেবিল বাছাই করা কি অন্য প্রশ্নের মূল্য, কেননা বাছাই করা গড় 50 টি অক্ষর ধরে?
bernd_k

7

ধরে নিচ্ছি যে আপনি এসকিউএল সার্ভারের উল্লেখ করছেন, আমি এটির কথা ভাবতে পারি।

একটি সারণীতে একটি সারির আকার (8 কে) এর সীমা রয়েছে এবং এসকিউএল আপনাকে বার্চার ক্ষেত্রগুলি সংজ্ঞায়িত করতে দেয় যা তাত্ত্বিকভাবে এই সীমাটি অতিক্রম করতে পারে। সুতরাং তারা যদি সম্পর্কিত সম্পর্কিত ক্ষেত্রে খুব বেশি ডেটা রাখে তবে ব্যবহারকারী ত্রুটি পেতে পারে।

এসকিউএল 2K8 দিয়ে শুরু করে আপনি এই সীমাটি অতিক্রম করতে পারেন, তবে কার্যকারিতা সংক্রান্ত প্রভাব রয়েছে

এছাড়াও, আপনি ডেটা দেখতে যেমন প্রত্যাশা করেন তার মধ্যে আকারকে সীমাবদ্ধ করার সম্পূর্ণ যুক্তিসঙ্গত চেক রয়েছে। আপনি যদি আনবাউন্ডেড দৈর্ঘ্যের ক্ষেত্রটি চান তবে পাঠ্য বা ntext দিয়ে যান না কেন?


সুতরাং পাঠ্য এবং ntext ডেটা টাইপ এমনভাবে সংরক্ষণ করা হয় যা কার্য সম্পাদনকে প্রভাবিত করে না?
চাদ

এই ধরণেরগুলি কোনও টেবিলের 8K সারি আকারের সীমাতে ততটা অবদান রাখে না কারণ প্রকৃত ডেটাটি কলামের বাকী অংশে ইনলাইন না করে কভারের নীচে আলাদা টেবিলে সংরক্ষণ করা হয়। এখনও একটি পারফরম্যান্স প্রভাব আছে, কিন্তু বিভিন্ন কারণে। বর্ণাচার এবং এনভারচারের সাথে তুলনা করার সময় এই ক্ষেত্রগুলিতে বৈশিষ্ট্য সহায়তার সীমাবদ্ধতাও রয়েছে
জনএফএক্স

পাঠ্য এবং ntext বর্ণচর্চা (সর্বাধিক) এর পক্ষে অবচয় করা হয়।
ফিল হেলমার

3

অবশ্যই এটি মাঠে কোন তথ্য সংরক্ষণ করা হচ্ছে তার উপর নির্ভর করে?

কয়েকটি জিনিসের বিভিন্ন কারণে সর্বাধিক দৈর্ঘ্য হতে চলেছে এবং যদি সর্বাধিক দৈর্ঘ্য থাকতে হয় তবে তা আপনার ক্ষেত্রের দৈর্ঘ্য হওয়া উচিত।

যদি তাত্ত্বিকভাবে সর্বাধিক দৈর্ঘ্য না থাকে তবে আমি প্রশ্ন করব কেন কেন ভারচার ব্যবহার করা হবে।


3

আমি ওরাকল ডেটাবেসগুলির প্রসঙ্গটি শিখেছি যে ডেটাবেস কলামগুলির জন্য সর্বদা ক্ষুদ্রতম ক্ষেত্রের আকার ব্যবহার করার ক্ষেত্রে একটি সমস্যা রয়েছে।

যখন একক বাইট কোলেশন সহ একটি ডাটাবেস থেকে আমদানি রফতানির মাধ্যমে ডেটা সরানো হয় তখন একাধিক বাইট কোলেশন (যেমন ওরাকল এক্সই) এর সাথে বাইটের দৈর্ঘ্য বাড়াতে পারে এবং আমদানি দ্বারা তৈরি টেবিলগুলিতে ডেটা আমদানি করতে ব্যর্থ হয়। অবশ্যই ওরাকল ভেরচার 2 দৈর্ঘ্যকে চর হিসাবে বা বাইট হিসাবে সংজ্ঞায়িত করার বিকল্প রয়েছে।

এখানে আমার বক্তব্যটি হ'ল যথাসম্ভব ছোট হিসাবে ফিল্ডটি সংজ্ঞায়িত করা বুদ্ধিমানের কাজ নয়। আমি ফিল্ড সহ আরও পরে বাছাই করতে অনেকগুলি পরিবর্তন সারণী দেখেছি (পরিবর্তিত প্রয়োজনীয়তার কারণে)।

সাথে 20% - 100% অব্যবহৃত ক্ষেত্র থাকা এখানে একটি আলোচনামূলক বিকল্প।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.