এই প্রশ্নটি আমার পুরানো প্রশ্নের সাথে সম্পর্কিত । নীচের ক্যোয়ারীটি কার্যকর করতে 10 থেকে 15 সেকেন্ড সময় নিয়েছিল:
SELECT [customer].[Customer name],[customer].[Sl_No],[customer].[Id]
FROM [company].dbo.[customer]
WHERE (Charindex('123456789',CAST([company].dbo.[customer].[Phone no] AS VARCHAR(MAX)))>0)
কিছু নিবন্ধে আমি দেখেছি যে ব্যবহার করে CAST
এবং CHARINDEX
সূচীকরণ থেকে কোনও উপকার হবে না। এছাড়াও কিছু নিবন্ধ আছে যা বলেছে যেগুলি ব্যবহারের LIKE '%abc%'
সময় সূচীকরণের ফলে কোনও লাভ হবে না LIKE 'abc%'
:
http://bytes.com/topic/sql-server/answers/81467- using-charindex-vs- Like- कहीं /programming/ -একটি-প্রশ্নের http://www.sqlservercentral.com/Forums/Topic186262-8-1.aspx#bm186568
আমার ক্ষেত্রে আমি ক্যোয়ারীটি আবার লিখতে পারি:
SELECT [customer].[Customer name],[customer].[Sl_No],[customer].[Id]
FROM [company].dbo.[customer]
WHERE [company].dbo.[customer].[Phone no] LIKE '%123456789%'
এই কোয়েরিটি আগেরটির মতো একই আউটপুট দেয়। আমি কলামের জন্য একটি অবিবাহিত সূচক তৈরি করেছি Phone no
। আমি যখন এই কোয়েরিটি সম্পাদন করি এটি মাত্র 1 সেকেন্ডে চলে । এটি আগের 14 সেকেন্ডের সাথে তুলনা করে একটি বিশাল পরিবর্তন ।
LIKE '%123456789%'
ইনডেক্সিং থেকে কীভাবে উপকার পাবেন?
তালিকাভুক্ত নিবন্ধগুলি কেন বলছে যে এটির কার্যকারিতা উন্নতি হবে না?
আমি কোয়েরিটি ব্যবহার করতে আবার লিখতে চেষ্টা করেছি CHARINDEX
, তবে কর্মক্ষমতা এখনও ধীর। কেন জিজ্ঞাসাটি CHARINDEX
যেমন প্রকাশিত হয় ততই সূচিকাগুলি থেকে কেন উপকৃত হয় না LIKE
?
ব্যবহার করে জিজ্ঞাসা করুন CHARINDEX
:
SELECT [customer].[Customer name],[customer].[Sl_No],[customer].[Id]
FROM [Company].dbo.[customer]
WHERE ( Charindex('9000413237',[Company].dbo.[customer].[Phone no])>0 )
হত্যা পরিকল্পনা:
ব্যবহার করে জিজ্ঞাসা করুন LIKE
:
SELECT [customer].[Customer name],[customer].[Sl_No],[customer].[Id]
FROM [Company].dbo.[customer]
WHERE[Company].dbo.[customer].[Phone no] LIKE '%9000413237%'
হত্যা পরিকল্পনা: