SAP-এ ছোট ডেটাসেট (যেমন ৫০০ রো) এর জন্য শর্ত (condition) লাগাতে SQL (OpenSQL) বা ABAP প্রোগ্রাম (LOOP ... WHERE) — দুটি পদ্ধতির পারফরম্যান্স পার্থক্য নগণ্য। যেকোনো একটি ব্যবহার করা যায়।
ABAP কোড উদাহরণ (LOOP AT ... WHERE)
LOOP AT lt_table TRANSPORTING NO FIELDS WHERE exp > 5. ADD 1 TO lt_counter. ENDLOOP.
ব্যাখ্যা
TRANSPORTING NO FIELDS— শুধু কাউন্ট করার জন্য, ডেটা ワークএরিয়ায় কপি করবে না (পারফরম্যান্স বুস্ট)۔WHERE exp > 5— শর্ত।ADD 1 TO lt_counter— কাউন্টার ইনক্রিমেন্ট।
SQL (OpenSQL) সমতুল্য
SELECT COUNT(*) FROM lt_table WHERE exp > 5.
- ডাটাবেস লেভেলে ফিল্টার ও কাউন্ট — নেটওয়ার্ক ট্রান্সফার কম।
- ৫০০ রো ছোট ডেটাসেট হলে পারফরম্যান্স প্রায় সমান।
কোনটি বেছে নেবেন?
| পরিস্থিতি | সুপারিশ |
|---|---|
| ছোট ডেটা (৫০০ রো), সিম্পল লজিক | যেকোনো একটি (ABAP LOOP বা OpenSQL) |
| বড় ডেটা, কমপ্লেক্স ফিল্টার | OpenSQL (DB-লেভেল ফিল্টার) |
| অ্যাপ্লিকেশন লজিকের মধ্যে আছে | ABAP LOOP (কনটেক্সটে থাকা ভালো) |
| একাধিক টেবিল জয়েন দরকার | OpenSQL (JOIN) |
মূল পয়েন্টসমূহ
- ৫০০ রোর মতো ছোট ডেটাসেটে পারফরম্যান্স পার্থক্য নগণ্য।
- OpenSQL ডাটাবেসে ফিল্টার করে কম ডেটা ট্রান্সফার করে (সাধারণত ভালো)।
- ABAP LOOP-এ
TRANSPORTING NO FIELDSব্যবহার করুন শুধু কাউন্ট/চেক করার সময়। - বড় ডেটায়
SELECT ... UP TO n ROWSবা পেজিনেশন ব্যবহার করুন।