Query এবং Search Performance Optimization

Computer Programming - এপেক্স (Apex) SOQL এবং SOSL (SOQL and SOSL) |
241
241

Query এবং Search Performance Optimization Salesforce ডেটাবেজে কার্যকর ও দ্রুত অনুসন্ধানের জন্য প্রয়োজনীয়। একটি ভালোভাবে অপ্টিমাইজ করা কুয়েরি Salesforce গভর্নর লিমিটের মধ্যে থেকে ডেটা প্রক্রিয়াজাত করে এবং ব্যবহারকারীর জন্য দ্রুত ফলাফল প্রদান করে। এখানে কিছু গুরুত্বপূর্ণ কৌশল ও Best Practices আলোচনা করা হলো, যা SOQL এবং SOSL কুয়েরির পারফরম্যান্স বাড়াতে সহায়ক।


১. Selective SOQL Query লেখা

SOQL কুয়েরিতে শুধু প্রয়োজনীয় ফিল্ডগুলো নির্বাচন করা উচিত। অপ্রয়োজনীয় ফিল্ডগুলো রিট্রাইভ না করলে কুয়েরির সময় ও মেমরি কম লাগে এবং গভর্নর লিমিট অতিক্রমের সম্ভাবনা হ্রাস পায়।

অপ্টিমাইজড উদাহরণ:

// শুধুমাত্র প্রয়োজনীয় ফিল্ডগুলো সিলেক্ট করা হয়েছে
SELECT Id, Name FROM Account WHERE Industry = 'Technology'

২. WHERE ক্লজে ইন্ডেক্সড ফিল্ড ব্যবহার

WHERE ক্লজে যেসব ফিল্ডে ইন্ডেক্স রয়েছে, সেগুলো ব্যবহার করলে কুয়েরি দ্রুত সম্পন্ন হয়। Salesforce ইন্ডেক্স সাধারণত প্রধান ফিল্ড, যেমন Id, Name, OwnerId ইত্যাদিতে থাকে। প্রয়োজনে কাস্টম ফিল্ডেও ইন্ডেক্সিং যুক্ত করা যায়।

অপ্টিমাইজড উদাহরণ:

SELECT Id, Name FROM Account WHERE AccountNumber = '12345' // ইন্ডেক্সড ফিল্ড

৩. LIMIT ব্যবহার করা

বেশি ডেটা রিট্রাইভের জন্য LIMIT ব্যবহার করলে কুয়েরি গভর্নর লিমিটের মধ্যে থেকে ডেটা রিট্রাইভ করতে সক্ষম হয়। তাই প্রয়োজনের অতিরিক্ত ডেটা না নিয়ে নির্দিষ্ট সংখ্যক রেকর্ড সংগ্রহ করা উচিত।

অপ্টিমাইজড উদাহরণ:

SELECT Id, Name FROM Account WHERE Industry = 'Technology' LIMIT 10

৪. SOSL কুয়েরি ব্যবহার করে একাধিক অবজেক্টে অনুসন্ধান

একাধিক অবজেক্টে অনুসন্ধান করার জন্য SOSL ব্যবহার করা উত্তম। SOSL ব্যবহার করে একাধিক অবজেক্টে দ্রুত সার্চ চালানো যায় এবং কুয়েরি সময় কম লাগে।

উদাহরণ:

FIND 'Acme' IN ALL FIELDS RETURNING Account(Name), Contact(FirstName, LastName)

৫. SOQL For Loop ব্যবহার

বেশি ডেটা প্রসেস করার জন্য SOQL For Loop ব্যবহার করা উচিত। এটি গভর্নর লিমিটের মধ্যে থেকে ডেটা প্রক্রিয়াকরণে সহায়ক।

অপ্টিমাইজড উদাহরণ:

for (List<Account> accList : [SELECT Id, Name FROM Account WHERE Industry = 'Technology']) {
    for (Account acc : accList) {
        System.debug('Account Name: ' + acc.Name);
    }
}

৬. Avoiding “NOT” and “!=” Operators in WHERE Clause

NOT এবং != অপারেটর WHERE ক্লজে ব্যবহার করলে কুয়েরির পারফরম্যান্সে নেতিবাচক প্রভাব ফেলতে পারে। এর পরিবর্তে = বা IN অপারেটর ব্যবহার করা উচিত।

অপ্টিমাইজড উদাহরণ:

// এর পরিবর্তে
// SELECT Id FROM Account WHERE Industry != 'Technology'

// এটি ব্যবহার করুন
SELECT Id FROM Account WHERE Industry IN ('Finance', 'Health')

৭. অ্যাগ্রিগেট ফাংশন ব্যবহার করা

বড় ডেটাসেট থেকে গাণিতিক পরিসংখ্যান রিট্রাইভ করতে অ্যাগ্রিগেট ফাংশন (যেমন COUNT(), SUM(), AVG(), MAX(), MIN()) ব্যবহার করা উত্তম। এটি কুয়েরি পারফরম্যান্স বাড়াতে সহায়ক।

উদাহরণ:

SELECT COUNT() FROM Account WHERE Industry = 'Technology'

৮. Parent-to-Child এবং Child-to-Parent Relationship কুয়েরি ব্যবহার

Parent-to-Child এবং Child-to-Parent Relationship কুয়েরি ব্যবহার করলে ডেটা একত্রে রিট্রাইভ করা যায় এবং পৃথক কুয়েরি চালানোর প্রয়োজন হয় না, যা পারফরম্যান্স বাড়ায়।

উদাহরণ:

// Parent-to-Child
SELECT Name, (SELECT LastName FROM Contacts) FROM Account

// Child-to-Parent
SELECT LastName, Account.Name FROM Contact

৯. Avoiding Hardcoded Ids

হার্ডকোড করা Id ব্যবহার না করে পরিবর্তনশীল প্যারামিটার ব্যবহার করা উচিত। এটি কোডকে পুনঃব্যবহারযোগ্য করে এবং অপ্টিমাইজেশনে সহায়ক হয়।

১০. Query Caching ব্যবহার করা

Frequently Used কুয়েরিগুলো সেভ করে Cache ব্যবহার করলে ডেটা রিট্রাইভ দ্রুত হয়। এটি কুয়েরি পারফরম্যান্স বাড়ায়।

১১. গভর্নর লিমিট বুঝে কুয়েরি লেখা

Salesforce গভর্নর লিমিট (যেমন DML Limit, SOQL Limit) অতিক্রম না করার জন্য সতর্ক হতে হবে। Bulkify করা এবং যেখানে সম্ভব LIMIT ব্যবহার করা গভর্নর লিমিট মেনে চলে কুয়েরি পারফরম্যান্স বাড়ায়।

১২. Apex CPU Time-এ অপ্টিমাইজড কোড

কুয়েরি লেখার সময় Apex CPU Time কম রাখতে কুয়েরি অপ্টিমাইজ করা উচিত। অতিরিক্ত লুপিং এড়িয়ে চলা এবং SOQL For Loop ব্যবহার করা উত্তম।


সংক্ষেপে Query এবং Search Performance Optimization

  • Selective Fields নির্বাচন করুন: অতিরিক্ত ফিল্ড বাদ দিয়ে প্রয়োজনীয় ফিল্ড নির্বাচন করুন।
  • LIMIT এবং WHERE ক্লজ ব্যবহার করুন: কম ডেটা প্রয়োজন হলে LIMIT এবং সঠিক WHERE ক্লজ ব্যবহার করুন।
  • Bulkify কুয়েরি: SOQL For Loop ব্যবহার করে ডেটা প্রসেস করুন।
  • SOSL কুয়েরি ব্যবহার করুন: একাধিক অবজেক্টে সার্চের জন্য SOSL ব্যবহার করুন।
  • Aggregate Functions ব্যবহার করুন: বড় ডেটাসেট থেকে গাণিতিক মান রিট্রাইভ করার জন্য অ্যাগ্রিগেট ফাংশন ব্যবহার করুন।
  • Query Caching এবং Dynamic Query ব্যবহার করুন: Frequently Used কুয়েরির জন্য Cache ব্যবহার করুন এবং Dynamic Query ব্যবহার করে ডেটা অনুসন্ধান কার্যকর করুন।

এসব কৌশল অনুসরণ করে SOQL এবং SOSL কুয়েরির পারফরম্যান্স বাড়ানো যায়, যা Salesforce ডেটাবেজ ব্যবহারে দ্রুততা এবং কার্যকারিতা নিশ্চিত করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion