আমার কাছে একটি সঞ্চিত প্রক্রিয়া রয়েছে যা একটি ইনডেক্সড ভিউ থেকে কভারিং ইনডেক্সের মাধ্যমে ফলাফলগুলি দেয়। সাধারণত, এটি দ্রুত চালিত হয় (10 ডলার), কখনও কখনও এটি 8 সেকেন্ড পর্যন্ত চলতে পারে।
এখানে এলোমেলোভাবে কার্যকরকরণের একটি উদাহরণ দেওয়া আছে (দ্রষ্টব্য: এটি কোনও ধীর গতি নয়, তবে ক্যোরির পাঠ্যটি উত্তীর্ণ হওয়া মান ব্যতীত একই)):
declare @p2 dbo.IdentityType
insert into @p2 values(5710955)
insert into @p2 values(5710896)
insert into @p2 values(5710678)
insert into @p2 values(5710871)
insert into @p2 values(5711103)
insert into @p2 values(6215197)
insert into @p2 values(5710780)
exec ListingSearch_ByLocationAndStatus @statusType=1,@locationIds=@p2
এখানে স্প্রোক রয়েছে:
ALTER PROCEDURE [dbo].[ListingSearch_ByLocationAndStatus]
@LocationIds IdentityType READONLY,
@StatusType TINYINT
AS
BEGIN
SET NOCOUNT ON;
SELECT -- lots of fields
FROM [dbo].[ListingSearchView][a] WITH (NOEXPAND)
INNER JOIN @LocationIds [b] ON [a].[LocationId] = [b].[Id]
WHERE [a].[StatusType] = @statusType
OPTION (RECOMPILE);
(দ্রষ্টব্য: আমি OPTION (RECOMPILE)
কিছু পরামর্শের পরে ইঙ্গিতটি যুক্ত করেছি , তবে এটি সাহায্য করে নি।
এখানে আচ্ছাদন সূচকটি (নোট: ভিউটিতে একটি ক্লাস্টার ইনডেক্সও রয়েছে ListingId
যা অনন্য)
CREATE NONCLUSTERED INDEX [IX_ListingSearchView_ForAPI] ON [dbo].[ListingSearchView]
(
[LocationId] ASC,
[StatusType] ASC
)
INCLUDE ( -- all the fields in the query) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
GO
এক্সপ্লোর এক্সএমএল পরিসংখ্যান সহ আমি একটি প্রোফাইলার ট্রেস লাগিয়ে দিয়েছি।
এখানে একটি ধীর গতি (6 সেকেন্ড) এবং প্রাসঙ্গিক পরিকল্পনা:
আমি যেমনটি প্রত্যাশা করছিলাম ঠিক তেমনটি দেখাবে এবং ক্যোয়ারী যখন দ্রুত হবে তখন একই পরিকল্পনা।
পরিকল্পনার ব্যয়বহুল অংশটি এখানে জুম করুন, যদি এটি সহায়তা করে:
এখানে দেখার / ব্যাকিং টেবিলগুলির সম্পূর্ণ স্কিমা দেওয়া আছে, যদি তা সহায়তা করে: https://pastebin.com/ WH1sRcbQ
মন্তব্য:
- সূচিগুলি আপত্তিজনক হয়েছে, পরিসংখ্যান টু ডেট।
- মূলত ক্যোয়ারীটি ভিউয়ের বিপরীতে ছিল তবে আমি স্থিতিশীল হতে চেষ্টা এবং সহায়তা করতে SPROC এ চলে এসেছি। সাহায্য করেনি।
- যোগ করা হচ্ছে
WITH OPTION (RECOMPILE);
ইঙ্গিতটি (কাজ করে নি তাই আঘ্রাণ প্যারামিটার হতে পারে না?) - সিস্টেমের অন্যান্য প্রশ্নগুলিও মাঝে মাঝে ধীর হয় এবং তাদের পরিকল্পনায় কোনও সুস্পষ্ট সমস্যা নেই।
- লক করা যাবে? কীভাবে নিশ্চিত করবেন তা নিশ্চিত নন।
আমি পরবর্তী চেষ্টা করতে পারে কি কোন ধারণা?
ধন্যবাদ