ডেটটাইম 2 (0) বনাম ডেটটাইম 2 (2)


16

ডকুমেন্টেশন ডেটটাইম 2 অনুসারে (লেনদেন-এসকিউএল) :


3 থেকে কম নির্ভুলতার জন্য 6 বাইট স্টোরেজ আকার
3 এবং 4
যথার্থতার জন্য 7 বাইট। অন্য সমস্ত স্পষ্টতা 8 বাইট প্রয়োজন।

আকার datetime2(0), datetime2(1), datetime2(2)(6 বাইট) এর ওপর সংগ্রহ একই পরিমাণ ব্যবহার করুন।

আমি কি এই কথাটি সঠিক হতে পারি যে আমি datetime2(2)কোনও অতিরিক্ত মাপের ব্যয় ছাড়াই নির্ভুলতার সাথে যেতে পারি এবং লাভ করতে পারি?

দয়া করে নোট করুন:

  • এই কলামটি PK এর সাথে একটি যৌগিক ক্লাস্টারড সূচক তৈরি করার জন্য সূচী করা হয়েছে (টেবিল বিভাজনের জন্য ব্যবহৃত)
  • আমি মিলিসেকেন্ড সম্পর্কে চিন্তা করি না

চান datetime2(0)একটি যেখানে দফা ব্যবহৃত আরো cpu 'র দক্ষ, অথবা যখন একটি সূচক মাধ্যমে সচেষ্ট?

এটি একটি বিশাল টেবিল, তাই ক্ষুদ্রতম অপ্টিমাইজেশন একটি বড় পার্থক্য আনবে।

উত্তর:


27

ডেটটাইম 2 (0), ডেটটাইম 2 (1), ডেটটাইম 2 (2), ডেটটাইম 2 (3) সমান পরিমাণ স্টোরেজ ব্যবহার করে। (6 বাইট)

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

না, আপনি দস্তাবেজটির ভুল ব্যাখ্যা করেছেন। উল্লেখ্য ডক রাজ্যের precisions জন্য সঞ্চয়স্থান মাপ 6 বাইট কম 3 (জোর খনি)। 3 এর সমান নির্ভুলতার জন্য 7 বাইট লাগবে।

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

অ্যাপ্লিকেশন প্রয়োজনীয়তা সূচিত্রে যখন আরও বৃহত্তর নির্ভুলতা পাওয়া যায় তখন ডাটাবেসে কী সংরক্ষণ করতে হবে তা নির্দেশ করবে। উদাহরণস্বরূপ, অর্ডার এন্ট্রি সময় থেকে উত্সাহিত করার জন্য SYSDATETIME(), ব্যবহারকারীরা 100 ন্যানোসেকেন্ড যথাযথতা চান না। আবার প্রয়োজনীয়তা অনুসারে নতুন বিকাশের জন্য ডেটা টাইপ এবং নির্ভুলতা চয়ন করুন এবং আপনি অতিরিক্ত চিন্তা না করে সাধারণত সর্বোত্তম কর্মক্ষমতা পাবেন:

  • তারিখ - আপনার সময় লাগবে না
  • স্মার্টডেটটাইম - আপনার সেকেন্ডের দরকার নেই
  • ডেটটাইম 2 (0) - আপনার ভগ্নাংশের সেকেন্ডের দরকার নেই
  • ডেটটাইম 2 (1-7) - আপনার নির্দিষ্ট নির্ভুলতার ভগ্নাংশের সেকেন্ডের প্রয়োজন
  • ডেটটাইমসেট (0-7) - আপনার সময় অঞ্চল সচেতনতার সাথে তারিখ এবং সময় প্রয়োজন
  • সময় (0-7) - আপনার নির্দিষ্ট সুনির্দিষ্টতার ভগ্নাংশের সেকেন্ড সহ কেবলমাত্র সময় (তারিখ নেই) দরকার

যদিও datetime2 নতুন উন্নয়ন সবচেয়ে উপযুক্ত হিসেবে উপরে তালিকাভুক্ত করা হয়, এক কখনও কখনও ব্যবহার করতে হতে পারে DATETIME পরিবর্তে উত্তরাধিকার DATETIME অ্যাপ্লিকেশনের সাথে সামঞ্জস্যের জন্য (1/300 ভগ্ন সেকেন্ড সঠিকতা সঙ্গে সংশোধন করা হয়েছে স্পষ্টতা 3) এইভাবে অন্তর্নিহিত রূপান্তর এবং অপ্রত্যাশিত তুলনা আচরণ এড়ানো, কিন্তু ভগ্নাংশ দ্বিতীয় যথার্থতা এবং বর্ধিত সঞ্চয়স্থানের ব্যয়।

বিবেচনা করুন যে প্রয়োজনের তুলনায় আরও বৃহত্তর নির্ভুলতা সঞ্চয় করতে বিকাশ ব্যয়ও হতে পারে। যদি কেবলমাত্র দ্বিতীয় দ্বিতীয় নির্ভুলতার প্রয়োজন হয় তখন কেউ যদি ভগ্নাংশের সেকেন্ড সহ একটি সময়ের উপাদান সঞ্চয় করে, সঠিক ফলাফলগুলি ফেরত দেওয়ার জন্য ক্যোয়ারিকে এখনও ভগ্নাংশীয় সেকেন্ড বিবেচনা করতে হবে। উদাহরণস্বরূপ, এমন অ্যাপের সাথে যেখানে ব্যবহারকারী কোনও ইউআইয়ের মাধ্যমে সময়সীমা নির্বাচন করে যা কেবলমাত্র পুরো সেকেন্ডের জন্য অনুমতি দেয়, অ্যাপ্লিকেশন কোডটির শেষ সময়সীমার মানের মধ্যে ভগ্নাংশের সেকেন্ডের জন্য অ্যাকাউন্ট হওয়া এবং সেই অনুযায়ী ব্যবহারকারীর সরবরাহকৃত মানকে সামঞ্জস্য করতে হবে (উদাঃ WHERE OrderEntryTime BETWEEN '2017-01-11T08:00:00.00.00' AND '2017-01-11T08:59:59.99'বা WHERE OrderEntryTime >= '2017-01-11T08:00:00.00' AND OrderEntryTime < '2017-01-11T09:00:00.00')। এটি কোড জটিলতা যুক্ত করবে।


কেবলমাত্র এই ক্ষুদ্র নোটের জন্য এই পুরানো থ্রেডটি ফাটিয়ে দেওয়ার জন্য দুঃখিত, তবে ছোট্ট তারিখের পুরো সেকেন্ড নেই (যেমন এইচ: মিমি: এসএস)।
pgfiore


@pgfiore, ডকুমেন্টেশন যুক্তরাষ্ট্রের এক মিনিটের সঠিকতা এবং আপনি এটি দিয়ে সঠিক পাবেন । smalldatetimeSELECT CAST(GETDATE() AS smalldatetime);
ড্যান গুজম্যান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.