ডায়নামিক্স এএক্সে একটি ক্যাশিং মেকানিজম রয়েছে যেখানে টেবিলগুলি মেমরিতে লোড করে ক্যাশে কনফিগার করা যায়। এই ক্যাশেটি মেমরির সমস্যাগুলি প্রতিরোধের জন্য নির্দিষ্ট পরিমাণের কেবিতে সীমাবদ্ধ। আমি যে সেটিংয়ের কথা বলছি সেটিকে ডাকা হয় entiretablecache
এবং একক রেকর্ডের অনুরোধ করা মাত্রই পুরো টেবিলটি মেমরিতে লোড করে দেয়।
টেবিলের আকারটি এই সীমা ছাড়িয়ে গেছে কিনা তা দেখতে এই সেটিং থাকা সারণীর আকার যাচাই করতে আমরা সম্প্রতি পর্যন্ত কিছু স্ক্রিপ্টগুলির উপর নির্ভর করেছি।
এখন যাইহোক, সংকোচনের সূচনা হয় এবং sp_spaceused বা sys.allocation_units এর মতো জিনিসগুলি আসলে সংকোচিত ডেটা দ্বারা ব্যবহৃত স্থানটি রিপোর্ট করে বলে মনে হয়।
স্পষ্টতই, অ্যাপ্লিকেশন সার্ভারটি সঙ্কুচিত ডেটার সাথে কাজ করছে তাই এসকিউএল সার্ভারে ডিস্কের ডেটার আকার অপ্রাসঙ্গিক। সঙ্কুচিত তথ্যগুলির আসল আকারটি আমার দরকার।
আমি sp_estimate_data_compression_savings সম্পর্কে জানি কিন্তু নাম যেমন বলেছে, এটি কেবল একটি অনুমান।
আমি যতটা সম্ভব আকারের পছন্দ করতে পছন্দ করব।
কেবলমাত্র আমি ভাবতে পারি যে কয়েকটি সংশ্লেষিত গতিশীল এসকিউএল ছিল সংকোচিত টেবিলগুলির মতো একই কাঠামোর সাথে সংকোচিত টেবিলগুলি তৈরি করা, সেই ছায়ার সারণীতে সংকুচিত ডেটা tingোকানো এবং তারপরে সেই ছায়ার টেবিলের আকার পরীক্ষা করুন।
বলা বাহুল্য, এটি কিছুটা ক্লান্তিকর এবং কয়েক শ 'জিবি ডাটাবেসে চালিত হতে কিছুটা সময় নেয়।
পাওয়ারশেল একটি বিকল্প হতে পারে, তবে আমি select *
স্ক্রিপ্টের আকার পরীক্ষা করার জন্য সমস্ত টেবিলের উপর দিয়ে একটি সম্পাদন করতে পুনরাবৃত্তি করতে চাই না কারণ এটি কেবল ক্যাশে বন্যা করবে এবং সম্ভবত খুব বেশি সময় নিতে পারে।
সংক্ষেপে, আমার প্রতিটি টেবিলের আকার পাওয়ার জন্য একটি উপায় প্রয়োজন কারণ এটি যদি সম্ভব হয় তবে এটি একবার সঙ্কুচিত হবে এবং সমীকরণের বাইরে বিভক্তকরণের সাথে যদি প্রয়োগের জন্য উপস্থাপিত হয়, তবে যদি এটি সম্ভব হয়। আমি বিভিন্ন পদ্ধতির জন্য উন্মুক্ত, টি-এসকিউএল পছন্দ করা হয় তবে আমি পাওয়ারশেল বা অন্যান্য সৃজনশীল পদ্ধতির বিরোধিতা করি না।
ধরে নিন অ্যাপ্লিকেশনটির বাফারটি হ'ল ডেটার আকার। একটি বিগিন্ট সর্বদা একটি বিগিন্টের আকার হয় এবং একটি চরিত্রের ডেটা টাইপ প্রতি অক্ষর (ইউনিকোড) 2 বাইট হয়। বিএলওবি ডেটা ডেটার আকারও গ্রহণ করে, একটি এনাম মূলত একটি অন্তর্নিহিত এবং সংখ্যাসূচক তথ্য সংখ্যা (38,12) হয়, ডেটটাইম একটি ডেটটাইমের আকার হয়। এছাড়াও, কোনও NULL
মান নেই, সেগুলি হয় ফাঁকা স্ট্রিং 1900-01-01
বা শূন্য হিসাবে সংরক্ষণ করা হয় ।
এটি কীভাবে বাস্তবায়িত হয় সে সম্পর্কে কোনও দলিল নেই, তবে অনুমানগুলি কিছু পরীক্ষার উপর ভিত্তি করে এবং পিএফই এবং সমর্থন দল দ্বারা ব্যবহৃত স্ক্রিপ্টগুলি (যা স্পষ্টতই সংক্ষেপণটিকে উপেক্ষা করে, যেহেতু চেকটি অ্যাপ্লিকেশনটিতে নির্মিত হয়েছে এবং অ্যাপটি এটি বলতে পারে না যদি অন্তর্নিহিত ডেটা সংকুচিত হয়) যা টেবিলের আকারগুলিও পরীক্ষা করে। উদাহরণস্বরূপ এই লিঙ্কটি বলে:
বড় টেবিলের জন্য এনরিটেটেবল ক্যাশেগুলি এড়িয়ে চলুন (AX 2009 এ 128 কেবি বা 16 পৃষ্ঠাগুলিতে, AX 2012 এ 'পুরো টেবিল ক্যাশে আকারের' অ্যাপ্লিকেশন সেটিং [ডিফল্ট: 32 কেবি, বা 4 পৃষ্ঠাগুলি]) এর পরিবর্তে ক্যাচিং রেকর্ড করুন।