এসকিউএল সার্ভার - অস্থায়ী বনাম শারীরিক টেবিল


14

#Temp টেবিল ব্যবহার থেকে দূরে সরে যাওয়ার পরিবর্তে এবং এসপিআইডি সহ স্থায়ী শারীরিক টেবিলগুলি ব্যবহার করার জন্য আমার নিয়োগের স্থানে একটি আন্দোলন শুরু হয়েছে। যখনই কারও আগে একটি # টেম্প টেবিলের ভিতরে সন্নিবেশ করা হত, এখন একটি INSERT INTO dbo.MyPermanentTable (SPID, ...) VALUES (@@SPID, ...)প্রয়োজনীয় - একসাথে বিবরণগুলির একটি গোছা সহ DELETE FROM dbo.MyPermanentTable WHERE SPID = @@SPIDপ্রথম দিকে সঞ্চিত প্রক্রিয়া। অধিকন্তু, এটি ছাড়াই বলা যায় যে যে কোনও জায়গায় এই 'অস্থায়ী ডেটা সংরক্ষণের জন্য স্থায়ী সারণী' ব্যবহার করা হয়, এটিকে অন্তর্ভুক্ত করার জন্য সতর্কতা অবলম্বন করতে হবে WHERE SPID = @@SPID

এই অনুশীলনের দিকে যাওয়ার পেছনের যুক্তিটি হ'ল এটি সার্ভারের সামগ্রিক কর্মক্ষমতা উন্নত করবে যার উপর কোয়েরিগুলি চলছে (আই / ও হ্রাস করে এবং টেম্পডবিটিতে বিতর্ক করে)। আমি বেশ কয়েকটি কারণে এই পদ্ধতির বিষয়ে আগ্রহী নই - এটি কুৎসিত, সম্ভাব্য বিপজ্জনক এবং দেখে মনে হচ্ছে এটি নতুন স্কিমটি ব্যবহার করে এমন প্রশ্নগুলির কার্য সম্পাদনের ক্ষতি করতে পারে।

# টেম্প টেবিলগুলি মুছে ফেলার জন্য এই কারওর সাথে বা একই জাতীয় পদ্ধতির কোনও অভিজ্ঞতা আছে কি?

উত্তর:


18

এটি বেশ সহজেই প্রদর্শিত হতে পারে যে এটি আইও বা তর্ককে হ্রাস করবে না, পরিবর্তে উভয় বৃদ্ধি করবে

  • আইও : # টিম্পের টেবিল থেকে প্রতিটি সারি সন্নিবেশ করা, পঠন বা মোছা এখন @@ এসপিআইডি টেবিল থেকে সন্নিবেশ করা, পড়া বা মোছা হবে। তবে প্রতিটি সারি একটি অতিরিক্ত @@ এসপিআইডি কলামের সাথে আরও প্রশস্ত হবে, অতএব প্রয়োজনীয় পৃষ্ঠাগুলির সংখ্যা কিছুটা বাড়বে এবং আইও এত সামান্য বড় হবে। তবে আরও গুরুত্বপূর্ণ, একটি # টেম্প টেবিলের ড্রপ এবং একটি অধিবেশন দ্বারা নতুন সেশনের # টেম্প টেবিলের প্রারম্ভিককরণটি এখন একটি দিয়ে সিমুলেটেড করতে হবে DELETE FROM @@spidTable WHERE spid = @@SPID, এবং এইভাবে কাটা / তৈরি ক্রিয়াকলাপ (অর্থাত্ পৃষ্ঠা সীমা পরিচালনার ক্রিয়াকলাপ) রূপান্তরিত হবে সারি অপারেশনগুলিতে, অতুলনীয় ধীর।
  • বিবাদের : প্রত্যেক স্ক্যানের যে #temp টেবিলের উপর পৃষ্ঠা কেশ ব্যবহার করছিলেন এখন সম্ভাব্য সম্পর্কহীন spid সারি মাধ্যমে একটি পৃষ্ঠায় লক করতে থাকবে, এইভাবে পূর্বে অ বিদ্যমান বিবাদের তৈরি করা। প্রতিটি আপডেট যা আরও বেশি করে যা লক এসকেলেশন থ্রেশহোল্ডকে আঘাত করে তা লকটিকে টেবিল লককে বাড়িয়ে তোলার এবং এইভাবে প্রতিটি অন্যান্য স্পিড ব্লক করার সুযোগ পায় ।

সুতরাং এটি সত্য যে আপনি টেম্পডবায় পৌরাণিক আইএএম / এসজিএএম / গ্যাম বিতর্ককে আঘাত করবেন না, এটি ঘটানোর একমাত্র কারণ হ'ল সাধারণ অতিরিক্ত আইও এবং অতিরিক্ত বিতর্কিত কারণে আপনার অপারেশনগুলি আরও ধীর হয়ে যাবে।


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

আপনার কাছে কতটি টেম্পডিবি ফাইল রয়েছে? স্ট্যান্ডার্ড সেটআপটি আসলেই মোটেও স্কেল করে না - আপনার একাধিক টেম্পডিবি ডাইল এবং লগ ফাইল থাকা উচিত, প্রতিটি দৃশ্যমান প্রসেসরের কোর (হাইপার-ভিতে প্রতিটি 2)।
টমটম

1
আপনার এই দুটি নিবন্ধ অবশ্যই পড়তে হবে: sqlskills.com/BLOGS/PAUL/post/… এবং sqlskills.com/BLOGS/PAUL/post/… কারণ তারা সবচেয়ে সাধারণ টেম্পডিবি স্কেলিবিলিটি সমস্যাগুলি সমাধান করে।
রেমাস রুসানু

নিবন্ধন করুন একাধিক লগ ফাইল? সত্যি?
অ্যারন বারট্র্যান্ড

5

এটি একটি কঠোর সমাধান মত মনে হচ্ছে। টেম্পডিবি বিবাদ হ্রাস করার বিষয়ে অনলাইনে অনেকগুলি নিবন্ধ রয়েছে (এবং এর ব্যবহারটি অনুকূল করে তোলা) - আপনার org কী সেই অ্যাভিনিউটি পুরোপুরি পরীক্ষা করেছে?

http://www.sql-server-performance.com/tips/tempdb_p1.aspx

http://www.sqlservercentral.com/blogs/robert_davis/archive/2010/03/05/Breaking-Down-TempDB-Contention.aspx

http://searchsqlserver.techtarget.com/tip/Optimize-tempdb-in-SQL-Server-by-striping-and-splitting-to-multiple-files

প্রভৃতি


+1 সম্পূর্ণরূপে সম্মত হন - টেম্পডিবিটিকে অনুকূলিত করুন, চাকাটি পুনর্বিবেচনা করবেন না কারণ আপনার প্রয়োগটি আরও খারাপ হবে। :)

আমি যথাযথ না হলে এই পথটি অনুসরণ না করার জন্য আমি সবাই - তথ্য বেনের জন্য ধন্যবাদ - আমি তদন্ত করব এবং যথাযথভাবে আমাদের ডিবিএকে পরামর্শ দেব।
হবে যারা একটি

2

আমার কাছে মনে হচ্ছে আপনি টেম্পডিবি-র মধ্যে পারফরম্যান্স সমস্যার সমস্যা সমাধান করতে হবে, এখানে কয়েকটি পরামর্শ রয়েছে


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