সম্পাদনা পরিকল্পনা বনাম পরিসংখ্যান IO আদেশ


20

এসকিউএল সার্ভারের গ্রাফিকাল এক্সিকিউশন পরিকল্পনাটি ডান থেকে বাম এবং উপরে থেকে নীচে পড়ে read আউটপুট দ্বারা উত্পাদিত একটি অর্থবহ অর্ডার আছে SET STATISTICS IO ON?

নিম্নলিখিত কোয়েরি:

SET STATISTICS IO ON;

SELECT  *
FROM    Sales.SalesOrderHeader AS soh
        JOIN Sales.SalesOrderDetail AS sod ON soh.SalesOrderID = sod.SalesOrderID
        JOIN Production.Product AS p ON sod.ProductID = p.ProductID;

এই পরিকল্পনাটি তৈরি করে:

গ্রাফিকাল কার্যকর পরিকল্পনা

এবং এই STATISTICS IOআউটপুট:

Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'SalesOrderDetail'. Scan count 1, logical reads 1246, physical reads 3, read-ahead reads 1277, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'SalesOrderHeader'. Scan count 1, logical reads 689, physical reads 1, read-ahead reads 685, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'Product'. Scan count 1, logical reads 15, physical reads 1, read-ahead reads 14, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

সুতরাং, আমি পুনরুক্তি: কি দেয়? STATISTICS IOআউটপুটে অর্থবহ অর্ডার দেওয়া আছে বা কিছু স্বেচ্ছাসেবী আদেশ ব্যবহৃত হয়?

উত্তর:


9

আমার বিভিন্ন খেলাগুলির সাথে আমার প্রাথমিক খেলাটি কোনও বিন্যাসের পরামর্শ দেয়নি তবে ঘনিষ্ঠ মনোযোগ দেওয়ার কারণে এটি সিরিয়াল পরিকল্পনার জন্য অনুমানযোগ্য বলে মনে হয়। আমি KB314648 এ শেষ করেছি যা @ অস্টিনজেলনার উল্লেখ করেছেন:

প্রতিটি এসকিউএল সার্ভার সংযোগের একটি সম্পর্কিত প্রক্রিয়া স্থিতি কাঠামো (পিএসএস) থাকে যা সংযোগ-নির্দিষ্ট রাষ্ট্রের তথ্য বজায় রাখে। সিসপ্রসেসিস সিস্টেম সারণীতে প্রতিটি অনন্য সার্ভার প্রসেস প্রসেস আইডি (এসপিআইডি) একটি আলাদা পিএসএস উপস্থাপন করে এবং সিসপ্রসেসেস ভার্চুয়াল টেবিলের তথ্য এই স্থিতির তথ্যের "ভিউ" is

এবং আপনার প্রশ্নের সাথে সম্পর্কিত বিভাগ:

যদি সংযোগের জন্য স্ট্যাটিসটিকস আইও সক্ষম হয় তবে এসকিউএল সার্ভার প্রতি সারণির ভিত্তিতে আইও তথ্য ট্র্যাক করতে কোয়েরি এক্সিকিউশন চলাকালীন একটি অ্যারের বরাদ্দ করে। এসকিউএল সার্ভার যেমন ক্যোয়ারীটি প্রসেস করে, তেমনি এই অ্যারেটিতে উপযুক্ত টেবিলে প্রবেশের কোনও পৃষ্ঠার জন্য প্রতিটি লজিকাল অনুরোধ রেকর্ড করে, সেই যুক্তিযুক্ত আইও অনুরোধটি কোনও শারীরিক আইওর ফলস্বরূপ ছিল কিনা তাও। এসকিউএল সার্ভার ত্রুটি বার্তায় 3615 এ ক্যোয়ারির শেষে তথ্য ফেরত দেয়।

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


5

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

তবে, এমন কোনও ডকুমেন্টেশন সম্পর্কে আমি অবগত নই যা এটি নির্দিষ্ট করে। আপনি কী অর্ডার সারণিতে অ্যাক্সেস ঘটেছে তা নিশ্চিত হতে চান, কার্যকর করার পরিকল্পনাটি পড়ুন।


এই ক্ষেত্রে এটি একটি বিপরীত ক্রমে আসে, অন্যদের মধ্যে এটি আলাদা। আমি সন্দেহ করি যে ইঞ্জিনের অন্তরঙ্গ জ্ঞান ব্যতীত আবিষ্কারের মতো কোনও আদেশ নেই যা সাধারণত জনসাধারণের জন্য উপলব্ধ নয়।
জেরেমিয়া পেশকা

এটি অন্যরকম যেখানে রয়েছে তার উদাহরণ আছে কি?
সেবাস্তিয়ান মেইন

বিক্রয় থেকে বিক্রয় করুন। সেলস অর্ডারহাইডার হিসাবে সোহম বিক্রয় হিসাবে বিক্রয় করুন। সেলস অর্ডারডেড = সোড.সেলস অর্ডারড লেফট জয়েন সেলস.সেলস পার্সন হিসাবে এসএসএস ওএসপ্রেসনসিপি স্পেনবোনসিটি 2 স্প্যানস বিজনেস 2। .ব্যজনতা এন্টিটিআইডির সাথে যোগ দিন।
জেরেমিয়া পেশকা

যতক্ষণ না কোনও সমান্তরালতা জড়িত থাকে ততক্ষণ আমার পর্যবেক্ষণটি সত্য। সিরিয়াল পরিকল্পনা দেখতে আপনি একটি শীর্ষ (100), শীর্ষ (1000) এবং শীর্ষ (10000) দিয়ে আপনার ক্যোয়ারী চালাতে পারেন। তবে শীর্ষ (100000) বা TOP ছাড়াই আপনি দুটি পৃথক সমান্তরাল পরিকল্পনা পাবেন এবং সেখানে সমস্ত বেট বন্ধ রয়েছে বলে মনে হচ্ছে।
সেবাস্তিয়ান মেইন

3

আমি যখনই প্রশাসনের চেয়ে বেশি প্রোগ্রামিং করতাম তখন থেকেই আমি সবসময় ভেবেছিলাম এর একটি অর্ডার ছিল। আমি কয়েকটি কার্যকর করার পরিকল্পনার মধ্য দিয়ে দৌড়েছি এবং আমার বিশ্বাসগুলি দুবার পরীক্ষা করে দেখেছি।

আমি যা দেখছি তা এখানে:

মাল্টি-স্টেপ ক্যোয়ারিতে (যেমন আমাদের অনেকগুলি সঞ্চিত পদ্ধতিতে) অর্ডারটি সেই শারীরিক ক্রমকে প্রতিফলিত করে যেখানে প্রশ্নগুলি চালানো হয়।

একটি নির্দিষ্ট প্রশ্নের জন্য, দেখে মনে হচ্ছে পরিসংখ্যানগুলি IO ডান থেকে শুরু করে এবং বাম দিকে কাজ করে পরিসংখ্যানগুলি রিপোর্ট করে সম্পাদন পরিকল্পনাকে প্রতিফলিত করে

সম্ভবত এটি অন্য কোনও কিছুর চেয়ে পর্যবেক্ষণের চেয়ে বেশি।


2
এই কিছু হতে পারে। টেবিলের ক্রমটিকে SELECT COUNT(*) FROM HumanResources.EmployeeDepartmentHistory UNION ALL SELECT COUNT(*) FROM HumanResources.Employee UNION ALL SELECT COUNT(*) FROM HumanResources.Departmentবিপরীত করাও IOআউটপুটকে বিপরীত করে তবে কাজের টেবিলটি প্রশ্নের প্রথম উদাহরণে কেন রিপোর্ট করা হয় তা তা ব্যাখ্যা করে না।
মার্টিন স্মিথ

@ মার্টিনস্মিথ হ্যাঁ, ওয়ার্কটেবলটি আমার সীমিত দৃষ্টিকোণ থেকে একটি ওয়াইল্ড কার্ড।
আরএলএফ

0

সুতরাং আমি মনে করি যে পরিসংখ্যানগুলির ফলাফল io রানটাইমের সময় আসলে কী ঘটছে সে সম্পর্কে আরও অন্তর্দৃষ্টি দেয়, কারণ এটি বিবেচনায় নেবে এবং ক্যাশের পরিবর্তে ডিস্ক থেকে পড়ার প্রয়োজনীয়তার দ্বারা প্রভাবিত হবে এবং অ্যাকাউন্টের অনুমতি দ্বারা প্রভাবিত হবে যে ক্যোয়ারী অধীনে চলছে। তারপরে পরিসংখ্যানগুলিতে টেবিলের অবস্থানটি প্রোফাইলার দ্বারা বিবেচিত ব্যতীত অন্য কারণগুলির দ্বারা প্রভাবিত হয়।

এখানে একটি কেবি নিবন্ধ যা অন্তর্দৃষ্টি এবং কিছু উদাহরণ দেয়: http://support.microsoft.com/kb/314648


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