আমাকে একক টেবিলের 100 মিলিয়ন রেকর্ড আপডেট করতে হবে, ফলস্বরূপ, কেবলমাত্র একটি আইডি দিয়ে একটি কলামের ভারচার মান প্রতিস্থাপন করে টেবিলটিকে সাধারণকরণ করতে হবে। (আমি "প্রতিস্থাপন" বলছি তবে সত্যই আমি আইডিটি অন্য কলামে লিখছি))
আমি যা অর্জন করতে চাইছি তা হ'ল ডেটাसेटকে স্বাভাবিক করা। এখনও সাধারণীকরণ করা তথ্যের কোনও সূচক নেই। আমার ধারণা ছিল যে আমি কাঁচা মানগুলিতে সূচকগুলি তৈরি করব না, অপেক্ষা করছিলাম, পরিবর্তে বিদেশী কীগুলি আপডেট করবো যা আপডেট শেষ হওয়ার পরে বার্নার মানগুলি প্রতিস্থাপন করবে iny
UPDATE A
SET A.AutoClassID = B.AutoClassID
FROM AutoDataImportStaging.dbo.Automobile as A
JOIN AutoData.dbo.AutoClass as B on (A.AutoClassName = B.AutoClassName)
পটভূমি
- সার্ভার ২০০৮ আর 2 তে এমএসএসকিউএল ২০০৮ আর 2 ব্যবহার করে
- সার্ভারে 8 জিবি র্যাম রয়েছে
- সার্ভারের একটি RAID10 রয়েছে, 7200 আরপিএম সটা (দুর্দান্ত নয়, আমি জানি, উত্পাদনে এটি কেবল ডেটা পড়বে এবং ডেটা লিখবে না; পাশাপাশি সাম্প্রতিক এইচডি সংকট ব্যয়ের জন্য এটি প্রয়োজনীয় করেছে)
- সার্ভারে ডুয়াল কোয়াড-কোর জিয়ন সিপিইউ রয়েছে
- মেশিন অন্য কিছু করছে না (বর্তমানে দেবের জন্য উত্সর্গীকৃত, কেবল এই প্রক্রিয়া)
- সরল লগিং চালু (? - তবে এটি কী এখনও লগ ইন করে যাতে এটি রোলব্যাক করতে পারে?)
- নোট করুন যে ক্যোয়ারী দুটি পৃথক ডিবি উল্লেখ করে, এটির জন্য মূল্য
- সারণিতে আপডেট হওয়া রেকর্ডের "প্রস্থ" 455 বাইট
কার্যকর করার সময় সংস্থানসমূহ
- শারীরিক র্যাম সর্বোচ্চ আউট হয়
- ডিস্ক আই / ও ম্যাক্স আউট হয়
- সিপিইউ খুব কমই কিছু করছে (চোক পয়েন্টটি I / O)
- রান সময় হয়েছে 14 ঘন্টা এবং গণনা!
আমি কিছু জিনিস সন্দেহ করি যেমন কাঁচা ডেটাতে আমার একটি সূচি প্রয়োজন, যদিও আমি নরমালাইজেশন আপডেটের পরে কলামটি (অটোক্লাসনাম) বাদ দিচ্ছি। আমি আরও আশ্চর্য হয়েছি যে জিনের পরিবর্তে আমার একবারে কেবল টেবিলের একটি রেকর্ডটি লুপ করা উচিত, যা আমি এটি শুরু করার সময় হাস্যকর মনে হয়েছিল, তবে এখন মনে হচ্ছে এটি আরও দ্রুততর হত।
আমি কীভাবে আমার বাকী নরমালাইজেশন আপডেটগুলি (এটির অনুরূপ) আরও দ্রুত আমার পদ্ধতি পরিবর্তন করব?
TOP
। এটা আমার পদ্ধতির হতে হবে।