একাধিক অনুপস্থিত সূচকের সাথে কার্যকর করার পরিকল্পনা


15

আপনি যদি 'প্রকৃত বাস্তবায়ন পরিকল্পনা অন্তর্ভুক্ত করুন' দিয়ে কোনও ক্যোয়ারী চালান তবে পরিকল্পনাটি অনুপস্থিত সূচকগুলিও প্রস্তাব করবে। সূচীর বিবরণগুলি MissingIndexesএক্সএমএলে ভিতরে থাকা। পরিকল্পনায় একাধিক সূচক পরামর্শ অন্তর্ভুক্ত রয়েছে এমন কোনও পরিস্থিতি কি আছে? আমি বিভিন্ন স্কেল কোয়েরি চেষ্টা করেছিলাম তবে দুটি বা তার বেশি অনুপস্থিত সূচক উত্পন্ন করে এমন কোনও কোয়েরি নিয়ে আসতে পারিনি।

উত্তর:


27

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

এসএসএমএসে একাধিক অনুপস্থিত সূচী পরামর্শগুলি দেখুন

যেমনটি আপনি উল্লেখ করেছেন, এক্সএমএল পরিকল্পনা বা এসকিউএল সেন্ট্রি প্ল্যান এক্সপ্লোরারের মতো তৃতীয় পক্ষের সরঞ্জামগুলিতে একাধিক পরামর্শ দৃশ্যমান । অনুপস্থিত সূচক ডিএমভিগুলিতে একাধিক পরামর্শগুলি দৃশ্যমান হবে (উদাঃ sys.dm_db_missing_index_details )

এই সাধারণ ক্যোয়ারির ফলে আমার একাধিক পরামর্শ এসেছে:

USE tempdb
GO

SET NOCOUNT ON
GO

IF OBJECT_ID('dbo.t1') IS NOT NULL DROP TABLE dbo.t1
CREATE TABLE dbo.t1
(
    rowId INT IDENTITY
)
GO

IF OBJECT_ID('dbo.t2') IS NOT NULL DROP TABLE dbo.t2
CREATE TABLE dbo.t2
(
    rowId INT IDENTITY
)
GO


INSERT INTO dbo.t1 DEFAULT VALUES
GO 100000

INSERT INTO dbo.t2 DEFAULT VALUES
GO 100000



SELECT *
FROM dbo.t1 t1
    INNER JOIN dbo.t2 t2 ON t1.rowId = t2.rowId
WHERE t2.rowId = 999;

আছে HTH

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