এসকিউএল সার্ভারের শোপ্ল্যান এক্সএমএল ব্যাখ্যা করা


15

আমি কেবলমাত্র আমার সাইট http://sqlfiddle.com এ একটি বৈশিষ্ট্য রোলআউট করেছি যা ব্যবহারকারীদের তাদের প্রশ্নের জন্য কাঁচা কার্যকরকরণের পরিকল্পনা দেখতে দেয়। পোস্টগ্রেএসকিউএল, মাইএসকিউএল এবং (কিছুটা হলেও) ওরাকল এর ক্ষেত্রে কাঁচা এক্সিকিউশন পরিকল্পনার আউটপুটটি দেখে বোধগম্য বলে মনে হয়। যাইহোক, যদি আপনি এসকিউএল সার্ভারের (এক্সপ্লোরেটেড SET SHOWPLAN_XML ON) এক্সিকিউশন প্ল্যান আউটপুটটি দেখেন তবে তুলনামূলক সহজ প্রশ্নগুলির জন্য এমনকি কেবলমাত্র প্রচুর পরিমাণে এক্সএমএল w এখানে একটি উদাহরণ রয়েছে (এই 'ফিডল'-এর জন্য শেষ ক্যোয়ারীর কার্যকরকরণ পরিকল্পনা থেকে নেওয়া: http://sqlfiddle.com/#!3/1fa93/1 ):

<ShowPlanXML xmlns="http://schemas.microsoft.com/sqlserver/2004/07/showplan" Version="1.1" Build="10.50.2500.0">
    <BatchSequence>
        <Batch>
            <Statements>
                <StmtSimple StatementText="&#xa;select * from supportContacts" StatementId="1" StatementCompId="1" StatementType="SELECT" StatementSubTreeCost="0.0032853" StatementEstRows="3" StatementOptmLevel="TRIVIAL" QueryHash="0x498D13A3874D9B6E" QueryPlanHash="0xD5DDBD3C2D195E96">
                    <StatementSetOptions QUOTED_IDENTIFIER="true" ARITHABORT="false" CONCAT_NULL_YIELDS_NULL="true" ANSI_NULLS="true" ANSI_PADDING="true" ANSI_WARNINGS="true" NUMERIC_ROUNDABORT="false"/>
                    <QueryPlan CachedPlanSize="16" CompileTime="0" CompileCPU="0" CompileMemory="72">
                        <RelOp NodeId="0" PhysicalOp="Clustered Index Scan" LogicalOp="Clustered Index Scan" EstimateRows="3" EstimateIO="0.003125" EstimateCPU="0.0001603" AvgRowSize="42" EstimatedTotalSubtreeCost="0.0032853" TableCardinality="3" Parallel="0" EstimateRebinds="0" EstimateRewinds="0">
                            <OutputList>
                                <ColumnReference Database="[db_1fa93]" Schema="[dbo]" Table="[supportContacts]" Column="id"/>
                                <ColumnReference Database="[db_1fa93]" Schema="[dbo]" Table="[supportContacts]" Column="type"/>
                                <ColumnReference Database="[db_1fa93]" Schema="[dbo]" Table="[supportContacts]" Column="details"/>
                            </OutputList>
                            <IndexScan Ordered="0" ForcedIndex="0" ForceScan="0" NoExpandHint="0">
                                <DefinedValues>
                                    <DefinedValue>
                                        <ColumnReference Database="[db_1fa93]" Schema="[dbo]" Table="[supportContacts]" Column="id"/>
                                    </DefinedValue>
                                    <DefinedValue>
                                        <ColumnReference Database="[db_1fa93]" Schema="[dbo]" Table="[supportContacts]" Column="type"/>
                                    </DefinedValue>
                                    <DefinedValue>
                                        <ColumnReference Database="[db_1fa93]" Schema="[dbo]" Table="[supportContacts]" Column="details"/>
                                    </DefinedValue>
                                </DefinedValues>
                                <Object Database="[db_1fa93]" Schema="[dbo]" Table="[supportContacts]" Index="[PK__supportC__3213E83F7F60ED59]" IndexKind="Clustered"/>
                            </IndexScan>
                        </RelOp>
                    </QueryPlan>
                </StmtSimple>
            </Statements>
        </Batch>
    </BatchSequence>
</ShowPlanXML>

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

আমার কাছে একটি ধারণা ছিল আউটপুটটি .sqlplan ফাইল হিসাবে ডাউনলোড করার জন্য একটি সহজ প্রক্রিয়া তৈরি করা, যাতে তারা এটিকে এসএসএমএস দিয়ে খুলতে পারে এবং সেখানে গ্রাফিকভাবে এটি দেখতে পারে। আমি বরং বাহ্যিক সরঞ্জাম উপলব্ধ ব্যবহারকারীদের উপর নির্ভর করতে হবে না, যদিও, যদি অন্য কোন যুক্তিসঙ্গত বিকল্প উপলব্ধ থাকে।

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

অন্য কোন চিন্তা?

হালনাগাদ

ঠিক আছে, আমি http://data.stackexchange.com/ এ একটি প্রশ্নের জন্য কেবল "এক্সিকিউশন প্ল্যান" ট্যাবটি দেখেছি । কীভাবে করব ?! ঐটা অসাধারণ! আমি আশা করছি যে তারা ঘরে বসে কেবল কোনও অভ্যন্তরীণ-স্ট্যাকেক্সচেঞ্জ-লাইব্রেরি নয়। কেউ জানেন?

আপডেট 2

আমি এই প্রকল্পটি থেকে এক্সএসএলটি ব্যবহার করে শোপ্লান এক্সএমএলটির সন্ত্রস্ত এইচটিএমএল + সিএসএস + জেএস ভিউটি সবেমাত্র বের করেছি: http://code.google.com/p/html-query-plan/ (আপনি এখনই এটি দেখতে পারেন যদি আপনি উপরের মূল লিঙ্কটি দেখুন)।

আমি অপেক্ষা করব এবং এই প্রকল্পের লেখক ( /dba//users/5996/justin ) এই প্রশ্নের উত্তর দেওয়ার জন্য প্রদর্শিত হয়েছে কিনা তাই আমি তাকে তার যথাযথ dueণ দিতে পারি। যদি আমি তাকে কিছুক্ষণ পরে পপ-ইন না দেখি তবে আমি খুশি হয়ে কৃতিত্ব মার্টিনকে দেব বা, এমনকি ব্যর্থ হয়েও, আমি নিজেই তার উত্তর দেব। আপনাকে ধন্যবাদ জাস্টিন এবং মার্টিন!

উত্তর:


9

প্রথমে আমাকে কেবল বলতে দাও - চমত্কার চেহারা দেওয়ার সাইট :)

এই ধরণের জিনিসটি হ'ল আমি এক্সএসএলটি-র জন্য যা লিখেছিলাম - আমি আনন্দিত যে অন্যরা এটি কার্যকরভাবে খুঁজে পেয়েছে!

আমি এর কিছু স্বীকার করে নিয়েছি যা আমি কিছুক্ষণ আগে লিখেছিলাম এবং এরপরে পাশের ট্র্যাক পেয়েছিলাম, কিছু উন্নতি হয়েছে যা আমি কিছু সময়ের জন্য করার পরিকল্পনা নিয়েছিলাম যা আমি শীঘ্রই বাস্তবায়িত হওয়ার আশ্বাস পাব!

কিছু লিঙ্ক:

আপনার উন্নতির জন্য কোনও পরামর্শ থাকলে আমাকে জানান!

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