ভর্কআরআর কলামগুলিকে আন্ডারাইজ করার কোনও মানে আছে কি?


18

চারপাশে গুগল করা মিশ্র প্রতিবেদনে মনে হচ্ছে VARCHAR2ওরাকলে কোনও কলামের আকার প্রভাবিত করবে কিনা ।

আমি VARCHARআকারের প্রশ্নটিকে কিছুটা বাঁক দিতে চাই এবং এতে কিছুটা অন্তর্দৃষ্টি পাওয়ার আশা করি:

প্রদত্ত (একাধিক লাইন) ফ্রি-পাঠ্য ক্ষেত্রের ( না নাম মত ছোট কাপড়) যে আপনি একটি (ওরাকল) ডাটাবেসের মধ্যে সঞ্চয় করতে চান, কোনো পয়েন্ট (wrt। কর্মক্ষমতা বা অন্যভাবে) হয় না আউট maxing VARCHARক্ষমতা ( VARCHAR2(4000)ওরাকল দিকে) কিন্তু নির্বাচন একটি ছোট মান যেমন 1024 বা 512 কারণ এটি সম্ভবত 98% ক্ষেত্রে যথেষ্ট হবে।


উত্তর:


12

এটি মেমরির ব্যবহারকে প্রভাবিত করে, বিশেষ করে যখন কোনও ক্লায়েন্ট প্রোগ্রামে একটি ডেটাসেট গ্রহণের জন্য পর্যাপ্ত মেমরি বরাদ্দ করতে হয়।

মনে রাখবেন যে প্রচুর অ্যাপস (বিশেষত ওয়েব অ্যাপস) ইউটিএফ -8 ব্যবহার করে যা একটি বহু-বাইট অক্ষর সেট। যেমন, আপনার সত্যিকার অর্থে বাইটের চেয়ে চরিত্রগুলি বিবেচনা করা উচিত।

যদি আমি এক হাজার চরিত্রের আশা করতাম তবে আমি সক্রিয়ভাবে একটি সিএলওবি বিবেচনা করব। আমি এটি ভাবতে চাই যে এটি প্লেইন পাঠ্য বা মার্কআপের কোনও রূপ (উইকি / এইচটিএমএল?) সংরক্ষণ করবে কিনা, ইউরো নয় এমন ভাষা ব্যবহার করে। উদাহরণস্বরূপ, এখানে প্রশ্নাবলী এবং উত্তরগুলি সিএলওবি হবে তবে মন্তব্যগুলি কোনও ভ্রচারে ফিট করতে পারে।

আপনি যদি কোনও ভিআচআরএআরআর আউট করেন তবে ছয় মাসের মধ্যে কেউ আবার এটিকে আরও বড় করতে চাইবে এবং আপনি কোনও সিএলওবি ব্যবহার না করার জন্য নিজেকে লাথি মারছেন।


2
ইউটিএফ -8 সাধারণত পশ্চিমা ভাষার জন্য একটি অক্ষরের জন্য একটি বাইট ব্যবহার করবে। এটি মাল্টি-বাইট এই অর্থে যে এটি মাল্টি-বাইট "অব্যাহতি" সিকোয়েন্সগুলিকে অ পশ্চিমী অক্ষরের প্রতিনিধিত্ব করতে দেয় to
এরিক জে

9

সাধারণত আপনার পক্ষে বিবেচিত হতে পারে এমন পার্শ্ব সমস্যা থাকলেও কার্য সম্পাদনের কোনও বিবেচনা নেই । সীমাবদ্ধতার জন্য সীমাটি varcharঅন্য যে কোনও প্রতিবন্ধক হিসাবে বিবেচনা করা উচিত - এটি ব্যবসায়ের নিয়ম কার্যকর করার আছে।

আইএমও প্রশ্ন আপনাকে জিজ্ঞাসা করা উচিত "আমি যদি এই ক্ষেত্রে আর হচ্ছে সঞ্চিত বিনামূল্যে টেক্সট ডাটা রোধ করতে চান তাহলে এন যে শুধুমাত্র নির্ধারণের ফ্যাক্টর যখন মধ্যবর্তী নির্বাচন - বাইট / অক্ষর" varchar(512)এবং varchar(4000)

নোট করুন যে আমি ধরে নিচ্ছি যে আপনি varcharএসকিউএল প্রকারের বিষয়ে কথা বলছেন - পরিস্থিতিটি ভিন্ন pl/sqlএবং মেমরি বরাদ্দের কারণে দৈর্ঘ্য নির্বাচন করা অত্যন্ত গুরুত্বপূর্ণ


ধন্যবাদ। আমার (খুব সীমাবদ্ধ) অভিজ্ঞতা যতদূর যায়, "500 - 3999" এর মধ্যে একটি সীমা উল্লেখ করে যে কোনও "ব্যবসায়িক বিধি" কেবল স্বেচ্ছাসেবী, অর্থাত্‍ কেউ এই সংখ্যাটি পছন্দ করেছেন। আইএমএইচও, যদি আমি ফ্রি-টেক্সটের জন্য যাচ্ছি এবং এর বাস্তবায়নের কোনও পরিণতি (এই প্রশ্নের প্রেক্ষাপট) না হয় তবে তা সর্বাধিক (4000) আউট হয় বা এটি ফ্রি-পাঠ্য নয়। --- যে মন্তব্যটি আমি এই মন্তব্যে তৈরি করার চেষ্টা করছি: আমার মনে হয় বিটিডব্লু নির্বাচন করতে কোনও ব্যবসায়িক বিধি কখনও থাকবে না। 512 এবং 4000 (যদি না হয়: "যতটা সম্ভব চরগুলি")
মার্টিন

যদি এটি সত্যিই "যথাসম্ভব যতগুলি চরিত্র" হয় তবে @ গ্যারি যেমন বলেছেন, আপনার উচিত একটি বিবেচনা করা clobউচিত, তাই না?
জ্যাক ডগলাস

4

যদি একটি ছোট মান 98% ক্ষেত্রে ক্ষেত্রে কাজ করে তবে 100% ক্ষেত্রে এটির জন্য ভারচার 2 (4000) লাগে তবে বৃহত্তর মানটি ব্যবহার করা ছাড়া আপনার কাছে বিকল্প নেই । 2% মানগুলির জন্য একটি পৃথক টেবিল তৈরি করা এবং তারপরে সন্নিবেশ / নির্বাচন ইত্যাদি সমন্বয় করা এমন জটিলতা যুক্ত করবে যা ক্ষেত্রটি প্রসারিত না করা থেকে কোনও স্মৃতি বা পারফরম্যান্স সুবিধাগুলি মুছে ফেলবে।

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