এটি কি কেবল nvarchar
মাল্টিবাইট চরিত্রগুলিকে সমর্থন করে? যদি এটি হয় তবে ব্যবহারের জন্য স্টোরেজ উদ্বেগ ছাড়া অন্য কোনও সত্যই আছে varchars
?
এটি কি কেবল nvarchar
মাল্টিবাইট চরিত্রগুলিকে সমর্থন করে? যদি এটি হয় তবে ব্যবহারের জন্য স্টোরেজ উদ্বেগ ছাড়া অন্য কোনও সত্যই আছে varchars
?
উত্তর:
একটি nvarchar
কলাম যেকোন ইউনিকোড ডেটা সঞ্চয় করতে পারে। একটি varchar
কলাম 8 বিট কোডপেজের মধ্যে সীমাবদ্ধ। কিছু লোক মনে করেন এটি varchar
ব্যবহার করা উচিত কারণ এটি কম জায়গা নেয়। আমি বিশ্বাস করি এটি সঠিক উত্তর নয়। কোডপেজ অসম্পূর্ণতাগুলি একটি ব্যথা এবং ইউনিকোড হ'ল কোডপেজ সমস্যার নিরাময়। আজকাল সস্তা ডিস্ক এবং মেমরির সাথে, কোড পেজগুলির সাথে আর কিছুটা সময় নষ্ট করার কোনও কারণ নেই।
সমস্ত আধুনিক অপারেটিং সিস্টেম এবং বিকাশ প্ল্যাটফর্ম অভ্যন্তরীণভাবে ইউনিকোড ব্যবহার করে। nvarchar
পরিবর্তে ব্যবহার varchar
করে আপনি যতবারই ডাটাবেস থেকে পড়বেন বা লিখবেন এনকোডিং রূপান্তরগুলি এড়াতে পারবেন। রূপান্তরগুলি সময় নেয় এবং ত্রুটির ঝুঁকিতে থাকে। এবং রূপান্তর ত্রুটি থেকে পুনরুদ্ধার একটি অ-তুচ্ছ সমস্যা।
আপনি যদি কেবল এমন ASCII ব্যবহার করে এমন কোনও অ্যাপ্লিকেশনটির সাথে হস্তক্ষেপ করেন তবে আমি এখনও ডাটাবেসে ইউনিকোড ব্যবহার করার পরামর্শ দেব। ওএস এবং ডাটাবেস কোলেশন অ্যালগরিদমগুলি ইউনিকোডের সাথে আরও ভাল কাজ করবে। ইউনিকোড অন্যান্য সিস্টেমের সাথে ইন্টারফেস করার সময় রূপান্তর সমস্যাগুলি এড়ায় । এবং আপনি ভবিষ্যতের জন্য প্রস্তুত করা হবে। এবং আপনি সর্বদা যাচাই করতে পারেন যে আপনার ইউনিকোড স্টোরেজটির কিছু সুবিধা উপভোগ করার পরেও আপনার ডেটা 7-বিট ASCII এর মধ্যে সীমাবদ্ধ রয়েছে whatever
ভার্চার : চলক দৈর্ঘ্য, অ-ইউনিকোড অক্ষর ডেটা। ডাটাবেস কোলেশন নির্ধারণ করে যে কোন কোড পৃষ্ঠাতে ডেটা ব্যবহার করে সংরক্ষণ করা হয়।
এনভারচার : চলক দৈর্ঘ্যের ইউনিকোড অক্ষর ডেটা। তুলনা করার জন্য ডাটাবেস কোলেশনের উপর নির্ভরশীল।
এই জ্ঞানের সাথে সজ্জিত, আপনার ইনপুট ডেটার (এএসসিআইআই বনাম ইউনিকোড) যেকোন একটির সাথে মেলে ব্যবহার করুন।
float
করা int
এবং যাওয়ার মতো, "নিশ্চিত যে দশমিকগুলি নিখোঁজ হয়।" শুধু না।
আমি সর্বদা এনভারচর ব্যবহার করি কারণ আমি যা কিছু নির্মাণ করছি তাতে আমি যে কোনও ডেটা ফেলে দিই তা প্রতিরোধ করতে পারি। আমার সিএমএস সিস্টেমটি দুর্ঘটনাক্রমে চাইনিজ করে, কারণ আমি এনভারচার ব্যবহার করেছি। এই দিনগুলিতে, কোনও নতুন অ্যাপ্লিকেশনগুলি প্রয়োজনীয় জায়গার পরিমাণ নিয়ে সত্যিই উদ্বিগ্ন হওয়া উচিত নয়।
"never"
কমপক্ষে প্রযুক্তিগতভাবে আপনার উদ্ধৃতি ব্যবহারের সাথে বৈপরীত্যের যে কোনও ঝুঁকিকে সরিয়ে দিয়েছেন
এটি কীভাবে ওরাকল ইনস্টল করা হয়েছিল তার উপর নির্ভর করে। ইনস্টলেশন প্রক্রিয়া চলাকালীন, NLS_CHARACTERSET বিকল্প সেট করা আছে। আপনি এটি ক্যোয়ারী সহ সন্ধান করতে সক্ষম হতে পারেন SELECT value$ FROM sys.props$ WHERE name = 'NLS_CHARACTERSET'
।
যদি আপনার NLS_CHARACTERSET ইউটিএফ 8 এর মতো একটি ইউনিকোড এনকোডিং হয় তবে দুর্দান্ত। VARCHAR এবং এনভিচারার ব্যবহার করে অনেকটা অভিন্ন। এখন পড়া বন্ধ করুন, কেবল এটির জন্য যান। অন্যথায়, বা ওরাকল চরিত্রের সেটটিতে যদি আপনার কোনও নিয়ন্ত্রণ না থাকে তবে পড়ুন।
VARCHAR - ডেটা NLS_CHARACTERSET এনকোডিংয়ে সংরক্ষণ করা হয়। যদি একই সার্ভারে অন্য ডাটাবেস দৃষ্টান্ত থাকে তবে আপনি তাদের দ্বারা সীমাবদ্ধ থাকতে পারেন; এবং বিপরীতে, যেহেতু আপনাকে সেটিংসটি ভাগ করতে হবে। এই জাতীয় ক্ষেত্র সেই অক্ষর সেটটি ব্যবহার করে এনকোড করা যায় এমন কোনও ডেটা এবং অন্য কিছুই সংরক্ষণ করতে পারে । সুতরাং উদাহরণস্বরূপ, যদি অক্ষর সেটটি MS-1252 হয়, আপনি কেবলমাত্র ইংরেজী অক্ষর, মুষ্টিমেয় উচ্চারণের অক্ষর এবং কয়েকটি অন্যান্য (যেমন € এবং -) অক্ষর সংরক্ষণ করতে পারেন। আপনার অ্যাপ্লিকেশনটি কেবলমাত্র কয়েকটি লোকেলের ক্ষেত্রে কার্যকর হবে, বিশ্বের অন্য কোথাও পরিচালনা করতে অক্ষম। এই কারণে, এটি একটি খারাপ ধারণা হিসাবে বিবেচিত হয়।
এনভিচারার - ডেটা একটি ইউনিকোড এনকোডিংয়ে সংরক্ষণ করা হয়। প্রতিটি ভাষা সমর্থন করে। একটি ভাল ধারনা.
স্টোরেজ স্পেস সম্পর্কে কি? বর্ণাচার সাধারণত দক্ষ, কারণ অক্ষর সেট / এনকোডিং নির্দিষ্ট লোকেলের জন্য কাস্টম ডিজাইন করা হয়েছিল। এনভিচারার ক্ষেত্রগুলি ইউটিএফ -8 বা ইউটিএফ -16 এনকোডিংয়ে সঞ্চয় করে, এনএলএসের উপর ভিত্তি করে যথেষ্ট পরিহাস করা যায়। ইউটিএফ -8 "পশ্চিমা" ভাষার পক্ষে খুব দক্ষ, যদিও এশীয় ভাষাগুলি সমর্থন করে। ইউটিএফ -16 এশীয় ভাষাগুলির পক্ষে খুব দক্ষ, যদিও এখনও "পশ্চিমা" ভাষা সমর্থন করে। স্টোরেজ স্পেস সম্পর্কে উদ্বিগ্ন হলে, ওরাকলকে যথাযথ ইউটিএফ -8 বা ইউটিএফ -16 ব্যবহার করার কারণ হিসাবে একটি এনএলএস সেটিং চয়ন করুন।
প্রক্রিয়াকরণের গতি সম্পর্কে কী? বেশিরভাগ নতুন কোডিং প্ল্যাটফর্মগুলি ইউনিকোডকে স্থানীয়ভাবে ব্যবহার করে (জাভা,। নেট, এমনকি সি ++ এসটিডি :: wstring বহু বছর আগে!) সুতরাং যদি ডাটাবেস ক্ষেত্রটি VARCHAR হয় তবে এটি ওরাকলকে প্রতিটি পড়ার বা লেখার অক্ষর সেটগুলির মধ্যে রূপান্তর করতে বাধ্য করে, এত ভাল নয়। এনভিচারার ব্যবহার করে রূপান্তর এড়ানো যায়।
নীচের লাইন: এনভিচারার ব্যবহার করুন! এটি সীমাবদ্ধতা এবং নির্ভরতা এড়ায়, স্টোরেজ স্পেসের জন্য জরিমানা, এবং সাধারণত পারফরম্যান্সের জন্যও সেরা।
আমার দুই সেন্ট
সঠিক ডেটাটাইপগুলি ব্যবহার না করে সূচকগুলি ব্যর্থ হতে পারে:
এসকিউএল সার্ভারে: যখন আপনার কোনও ভোচারার কলামের উপরে একটি সূচক থাকে এবং এটি একটি ইউনিকোড স্ট্রিং উপস্থাপন করে তখন এসকিউএল সার্ভার সূচকটি ব্যবহার করে না। আপনি যখন স্মলইন্ট যুক্ত একটি ইনডেক্সড-কলামে একটি বিগইন্ট উপস্থাপন করেন তখন একই জিনিস ঘটে থাকে। এমনকি বিগিয়ান্ট যদি ছোট আকারে ছোট হয় তবে এসকিউএল সার্ভার সূচকটি ব্যবহার করতে সক্ষম হয় না। আপনার চারপাশের অন্যান্য উপায়ে এই সমস্যাটি নেই (যখন একটি ইনডেক্সড বিগইন্ট ওটি এনভিচারারআর কলামে স্মলআইন্ট বা আনসি কোড সরবরাহ করা হয়)।
ডেটাটাইপগুলি বিভিন্ন ডিবিএমএসের (ডেটাবেজ ম্যানেজমেন্ট সিস্টেম) এর মধ্যে পরিবর্তিত হতে পারে: জেনে রাখুন যে প্রতিটি ডাটাবেসের কিছুটা আলাদা ডেটাটাইপ থাকে এবং ভ্রচারের অর্থ সর্বত্র এক রকম নয়। এসকিউএল সার্ভারে ভ্রচার ও এনভিচার্আর রয়েছে, তবে অ্যাপাচি / ডার্বি ডাটাবেসের কেবলমাত্র ভ্রচার আছে এবং সেখানে ইউনিকোডে ভ্রচারার রয়েছে।
প্রধানত nvarchar দোকানে ইউনিকোড অক্ষর এবং varchar দোকানে অ-ইউনিকোড অক্ষর।
"ইউনিকোডস" এর অর্থ হল ১--বিট অক্ষর এনকোডিং স্কিম যার অর্থ আরবি, হিব্রু, চীনা, জাপানি, যেমন একক অক্ষর সেটকে এনকোড করা যেতে পারে other
তার মানে ইউনিকোডগুলি সংরক্ষণ করতে অক্ষর প্রতি 2 বাইট ব্যবহার করছে এবং ননুনিকোডগুলি সংরক্ষণ করতে অক্ষর প্রতি মাত্র একটি বাইট ব্যবহার করে। যার অর্থ ইউনিকোডগুলি নন-ইউনিকোডের তুলনায় সঞ্চয় করার জন্য দ্বিগুণ ক্ষমতা প্রয়োজন।
তুমি ঠিক বলছো. nvarchar
ইউনিকোড ডেটা সংরক্ষণ করে যখন varchar
একক বাইট অক্ষর ডেটা সঞ্চয় করে। স্টোরেজ পার্থক্য nvarchar
বাদে ( দ্বিগুণ স্টোরেজ স্পেস হিসাবে প্রয়োজনীয় varchar
), যা আপনি ইতিমধ্যে উল্লেখ করেছেন, তার চেয়ে nvarchar
বেশি পছন্দ করার মূল কারণ হ'ল varchar
আন্তর্জাতিকীকরণ (অর্থাত্ অন্যান্য ভাষায় স্ট্রিংগুলি সংরক্ষণ করা)।
আমি বলব, এটি নির্ভর করে।
যদি আপনি একটি ডেস্কটপ অ্যাপ্লিকেশন বিকাশ করেন, যেখানে ওএস ইউনিকোডে (সমস্ত বর্তমান উইন্ডোজ সিস্টেমের মতো) কাজ করে এবং ভাষা স্থানীয়ভাবে ইউনিকোডকে সমর্থন করে (ডিফল্ট স্ট্রিংগুলি ইউনিকোড, জাভা বা সি # এর মতো), তবে নব্যচারে যান।
যদি আপনি একটি ওয়েব অ্যাপ্লিকেশন বিকাশ করেন যেখানে স্ট্রিংগুলি ইউটিএফ -8 হিসাবে আসে এবং ভাষাটি পিএইচপি হয়, যা এখনও ইউনিকোডকে স্থানীয়ভাবে সমর্থন করে না (সংস্করণ 5.x এ), তবে বর্ণাচার সম্ভবত আরও ভাল পছন্দ হবে।
যদিও NVARCHAR
ইউনিকোড VARCHAR
সংরক্ষণ করে তবে আপনার কোলিশনের সাহায্যে আপনার স্থানীয় ভাষাগুলির ডেটা ব্যবহার এবং সংরক্ষণ করতে পারেন consider
শুধু নিম্নলিখিত পরিস্থিতিতে কল্পনা করুন।
আপনার ডিবির কোলেশনটি পার্সিয়ান এবং আপনি VARCHAR(10)
ডাটাটাইপে 'আলি' (আলির ফারসি লেখা) এর মতো একটি মান সংরক্ষণ করেন । কোনও সমস্যা নেই এবং এটি সংরক্ষণের জন্য ডিবিএমএস কেবল তিনটি বাইট ব্যবহার করে।
তবে, আপনি যদি অন্য ডেটাবেসে আপনার ডেটা স্থানান্তর করতে চান এবং সঠিক ফলাফলটি দেখতে চান তবে আপনার গন্তব্য ডাটাবেসের লক্ষ্য হিসাবে সমান কোলেশন থাকতে হবে যা এই উদাহরণটিতে ফারসি।
যদি আপনার টার্গেটের জোট আলাদা হয়, আপনি লক্ষ্য ডাটাবেসে কিছু প্রশ্ন চিহ্ন (?) দেখতে পাবেন।
অবশেষে, মনে রাখবেন যে আপনি যদি একটি বিশাল ডাটাবেস ব্যবহার করেন যা আপনার স্থানীয় ভাষার ব্যবহারের জন্য হয় তবে আমি অনেকগুলি স্পেস ব্যবহার না করে অবস্থানটি ব্যবহার করার পরামর্শ দেব।
আমি বিশ্বাস করি ডিজাইন আলাদা হতে পারে। এটি আপনি যে পরিবেশে কাজ করছেন তার উপর নির্ভর করে।
আমি উত্তর কটাক্ষপাত ছিল এবং অনেক ব্যবহার সুপারিশ বলে মনে হচ্ছে nvarchar
বেশি varchar
, কারণ স্থান একটি সমস্যা আর না, তাই একটু অতিরিক্ত সঞ্চয় করার জন্য ইউনিকোড সক্রিয় কোন ক্ষতি নেই। ঠিক আছে, আপনি যখন নিজের কলামের উপরে কোনও সূচক প্রয়োগ করতে চান এটি সর্বদা সত্য নয়। আপনি সূচী করতে পারেন এমন ক্ষেত্রের আকারে এসকিউএল সার্ভারের 900 বাইটের সীমা রয়েছে। সুতরাং আপনার যদি একটি থাকে তবে আপনি varchar(900)
এটি সূচক করতে পারেন, তবে তা নয় varchar(901)
। এর সাথে nvarchar
, অক্ষরের সংখ্যা অর্ধেক হয়ে যায়, যাতে আপনি সূচী করতে পারেন nvarchar(450)
। সুতরাং আপনি যদি আত্মবিশ্বাসী হন যে আপনার প্রয়োজন নেই তবে nvarchar
আমি এটি ব্যবহার করার পরামর্শ দিচ্ছি না।
সাধারণভাবে, ডেটাবেজে, আমি আপনার প্রয়োজনীয় আকারের সাথে লেগে থাকার পরামর্শ দিচ্ছি, কারণ আপনি সর্বদা প্রসারিত করতে পারেন। উদাহরণস্বরূপ, কাজের একজন সহকর্মী একবার ভেবেছিলেন যে nvarchar(max)
কলাম ব্যবহার করার কোনও ক্ষতি নেই , কারণ আমাদের কোনও স্টোরেজ নিয়ে কোনও সমস্যা নেই। পরে, যখন আমরা এই কলামটির উপরে একটি সূচক প্রয়োগ করার চেষ্টা করেছি, এসকিউএল সার্ভার এটি প্রত্যাখ্যান করেছে। তবে, যদি তিনি সমান দিয়ে শুরু করেছিলেন, তবে varchar(5)
আমরা কেবল আমাদের এ জাতীয় সমস্যাটি ছাড়াই আমাদের প্রসারিত করতে পারলাম যা আমাদের এই সমস্যাটি সমাধানের জন্য একটি ফিল্ড মাইগ্রেশন পরিকল্পনা করতে হবে।
n ভারচার আপনাকে ইউনিকোড অক্ষর সংরক্ষণ করতে সহায়তা করবে। স্থানীয়করণের ডেটা সংরক্ষণ করতে চাইলে এটি যাওয়ার উপায়।
যদি কোনও একক বাইট কোনও অক্ষর সংরক্ষণের জন্য ব্যবহার করা হয়, তবে সেখানে 256 টি সম্ভাব্য সংমিশ্রণ রয়েছে এবং এর মাধ্যমে আপনি 256 টি আলাদা অক্ষর সংরক্ষণ করতে পারেন। কোলেশন হ'ল একটি প্যাটার্ন যা অক্ষর এবং বিধিগুলি যেগুলির দ্বারা তাদের তুলনা করে এবং সাজানো হয় তা সংজ্ঞায়িত করে।
1252, যা লাতিন 1 (এএনএসআই), সবচেয়ে সাধারণ। একক বাইট অক্ষর সেটগুলিও বহু ভাষার দ্বারা ব্যবহৃত সমস্ত অক্ষর সংরক্ষণের জন্য অপর্যাপ্ত। উদাহরণস্বরূপ, কিছু এশিয়ান ভাষাগুলিতে কয়েক হাজার অক্ষর রয়েছে, তাই তাদের অবশ্যই অক্ষর প্রতি দুটি বাইট ব্যবহার করা উচিত।
একাধিক কোড পৃষ্ঠা ব্যবহার করা সিস্টেমগুলি যখন কোনও নেটওয়ার্কে ব্যবহার করা হয়, তখন যোগাযোগ পরিচালনা করা কঠিন হয়ে পড়ে। কিছু প্রমিত করার জন্য, ISO ও ইউনিকোড কনসোর্টিয়াম চালু ইউনিকোড । ইউনিকোড প্রতিটি অক্ষর সংরক্ষণ করতে দুটি বাইট ব্যবহার করে। যে 65,536 বিভিন্ন অক্ষর সংজ্ঞায়িত করা যায়, তাই প্রায় সমস্ত অক্ষর ইউনিকোড দিয়ে কভার করা যেতে পারে। যদি দুটি কম্পিউটার ইউনিকোড ব্যবহার করে তবে প্রতিটি প্রতীক একইভাবে উপস্থাপিত হবে এবং কোনও রূপান্তর প্রয়োজন হবে না - এটি ইউনিকোডের পিছনে ধারণা।
এসকিউএল সার্ভারের দুটি বিভাগের অক্ষর ডেটাটাইপ রয়েছে:
আমাদের যদি একাধিক দেশ থেকে চরিত্রের ডেটা সংরক্ষণ করতে হয় তবে সর্বদা ইউনিকোড ব্যবহার করুন।
আমাকে এখানে বলতে হবে (আমি বুঝতে পেরেছি যে আমি সম্ভবত নিজেকে একটি স্লিটিংয়ের সামনে উন্মুক্ত করতে যাচ্ছি!), তবে অবশ্যই একমাত্র সময় যখন NVARCHAR
আসলে আরও কার্যকর ( সেখানে আরও লক্ষ্য করুন !) VARCHAR
যখন সমস্ত জোটের সমস্ত জোটের চেয়ে বেশি নির্ভরশীল সিস্টেম এবং ডাটাবেসের মধ্যে নিজেই একই ...? তাহলে কোলেশন রূপান্তর যাহাই হউক না কেন ঘটতে করেনি এবং তাই করে তোলে VARCHAR
ঠিক টেকসই হিসাবে হিসাবে NVARCHAR
।
এটি যুক্ত করতে, কিছু ডাটাবেস সিস্টেমে যেমন এসকিউএল সার্ভারের (২০১২ এর আগে) প্রায় পৃষ্ঠা আকার থাকে x 8K। সুতরাং, আপনি যদি অনুসন্ধানযোগ্য ডেটা কোনও TEXT
বা NTEXT
ক্ষেত্রের মতো কিছুতে না রেখে সংরক্ষণের দিকে তাকিয়ে থাকেন তবে VARCHAR
8k এর পূর্ণ স্থান সরবরাহ করে যেখানে NVARCHAR
কেবল 4k সরবরাহ করা হয় (দ্বিগুণ বাইটস, স্পেস দ্বিগুণ)।
আমার ধারণা, সংক্ষিপ্তসার হিসাবে, উভয়ের ব্যবহার নির্ভর করে:
SQL সার্ভার VARCHAR এবং এনভিচারকার ডেটা টাইপের মধ্যে পার্থক্য অনুসরণ করুন । এখানে আপনি একটি খুব বর্ণনামূলক উপায়ে দেখতে পারে।
জেনার্নভর্চারে ইউনিকোড হিসাবে ডেটা সঞ্চয় করে, সুতরাং, যদি আপনি কোনও ডাটা কলামে বহুভাষিক তথ্য (একাধিক ভাষা) সঞ্চয় করতে চলেছেন তবে আপনার এন বৈকল্পিকের প্রয়োজন need
মধ্যে মূল পার্থক্য Varchar(n)
এবং nvarchar(n)
হল:
Varchar
(চলক দৈর্ঘ্য, অ-ইউনিকোড অক্ষর ডেটা) আকার 8000 অবধি। 1. এটি একটি পরিবর্তনশীল দৈর্ঘ্যের ডেটা টাইপ
অ-ইউনিকোড অক্ষর সংরক্ষণ করতে ব্যবহৃত হয়
প্রতিটি চরিত্রের জন্য 1 বাইট স্থান দখল করে
Nvarchar
: পরিবর্তনশীল দৈর্ঘ্যের ইউনিকোড অক্ষর ডেটা।
1. এটি একটি পরিবর্তনশীল দৈর্ঘ্যের ডেটা টাইপ
2. ইউনিকোড অক্ষর সংরক্ষণ করার জন্য ব্যবহৃত।
Ff 47000 খ্যাতিমান স্কোর সহ জেফরি এল হুইটলজি nvacharar ব্যবহারের পরামর্শ দেয়
Solomon 33200 খ্যাতি স্কোর সহ সলোমন রুটজির পরামর্শ দেয়: সর্বদা এনভিচারার ব্যবহার করবেন না। এটি একটি অত্যন্ত বিপজ্জনক এবং প্রায়শই ব্যয়বহুল / দৃষ্টিভঙ্গি /
ভারচর এবং এনভারচার এসকিউএল সার্ভার ডেটা ধরণের মধ্যে পারফরম্যান্সের মূল পার্থক্যগুলি কী কী?
https://www.sqlservercentral.com/articles/disk-is-cheap-orly-4
এত উচ্চ খ্যাতির উভয় ব্যক্তিই, কোন লার্নিং এসকিএল সার্ভারের ডেটাবেস বিকাশকারী কী নির্বাচন করে?
আপনি যদি পছন্দগুলিতে সামঞ্জস্য না রাখেন তবে পারফরম্যান্স সম্পর্কিত সমস্যাগুলির বিষয়ে উত্তর এবং মন্তব্যে অনেক সতর্কতা রয়েছে।
পারফরম্যান্সের জন্য মন্তব্য / প্রো কন / এনভারচার রয়েছে।
পারফরম্যান্সের জন্য মন্তব্যগুলি প্রো / কন বারচার রয়েছে।
আমার শত শত কলাম সহ একটি টেবিলের জন্য একটি বিশেষ প্রয়োজনীয়তা রয়েছে যা নিজেই সম্ভবত অস্বাভাবিক?
এসকিউএল * সার্ভার 2012-এর 8060 বাইট টেবিল রেকর্ড আকারের সীমাটির কাছাকাছি যাওয়া এড়াতে আমি বার্ছার নির্বাচন করছি।
আমার কাছে এনভারচার ব্যবহার এই 8060 বাইট সীমা ছাড়িয়ে যায়।
আমি আরও ভাবছি যে প্রাথমিক কোড সারণীর ডাটা টাইপের সাথে সম্পর্কিত কোড টেবিলগুলির ডেটা টাইপগুলির সাথে আমার মিল করা উচিত।
আমি পূর্বের অভিজ্ঞ ডাটাবেস বিকাশকারীদের দ্বারা দক্ষিণ আফ্রিকার সরকার, কাজের জায়গায়, বারচর কলামের ব্যবহার দেখেছি যেখানে টেবিলের সারির সংখ্যা কয়েক মিলিয়ন বা আরও বেশি হতে চলেছে (এবং খুব কম কিছু এনভারচর কলাম, যদি থাকে তবে খুব বড় আকারে) সারণী), সুতরাং সম্ভবত প্রত্যাশিত ডেটা সারি ভলিউম এই সিদ্ধান্তের অংশ হয়ে যায়।
nvarchar
varchar
আমাদের কোড ত্রুটি মুক্ত করার জন্য তুলনায় ব্যবহার করা নিরাপদ (টাইপ ম্যাচম্যাচিং) কারণ nvarchar
ইউনিকোড অক্ষরগুলিকেও অনুমতি দেয়। যখন আমরা where
এসকিউএল সার্ভার ক্যোয়ারীতে শর্ত ব্যবহার করি এবং আমরা যদি =
অপারেটর ব্যবহার করি তবে এটি কিছু সময় ত্রুটি ছুঁড়ে দেবে। এর সম্ভাব্য কারণ হ'ল আমাদের ম্যাপিং কলামটি আলাদা হবে varchar
। আমরা যদি nvarchar
এই সমস্যায় এটি সংজ্ঞায়িত করি তবে আমার ঘটনা ঘটবে না। তবুও আমরা varchar
এই বিষয়টিকে আঁকড়ে ধরে এড়া করি এবং আমরা LIKE
কী শব্দটি না দিয়ে আরও ভাল ব্যবহার করি =
।