ข้ามไปที่เนื้อหาหลัก

OR กับ UNION ALL กัน

วันนี้เรามาดูเทคนิคเพิ่มเติมระหว่าง OR กับ UNION ALL กัน
ในกรณีที่เรา ใช้ OR ในส่วนของเงื่อนไข เยอะ ๆ จะทำให้ Query ช้าลงมาก ๆ เช่น

SELECT EMPLOYEEID,FIRSTNAME, LASTNAME
FROM EMPLOYEE
WHER DEPT = 'IT' OR CITY = 'UDONTHANI' OR DIVISION = 'SUPPORT'

เราสามารถใช้การ UNION ALL เพื่อเพิ่มความเร็วในการ Query ได้

SELECT EMPLOYEEID,FIRSTNAME, LASTNAME
FROM EMPLOYEE
WHER DEPT = 'IT'
UNION ALL
SELECT EMPLOYEEID,FIRSTNAME, LASTNAME
FROM EMPLOYEE
WHER CITY = 'UDONTHANI'
UNION ALL
SELECT EMPLOYEEID,FIRSTNAME, LASTNAME
FROM EMPLOYEE
WHER DIVISION = 'SUPPORT'

อย่างนี้ จะเพิ่มประสิทธิภาพในการ Query ได้นะครับ
หวังว่าคงช่วยได้ไม่มากก็น้อยนะครับ

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

3. ใช้ EXISTS เร็วกว่า IN แน่นอน

3. ใช้ EXISTS เร็วกว่า IN แน่นอน      ยกตัวอย่างอันนี้ผมใช้ใน Oracle นะครับ     select f1,f2,f3 from my_table where     exists (select 1 from dual where f1=1 or f1=2 or f1=3)      เร็วกว่า     select f1,f2,f3 from my_table where     f1 in (1,2,3)     ฟันธง

UNION กับ UNION ALL ต่างกันอย่างไร

วันนี้เรามาดูว่า UNION กับ UNION ALL ต่างกันอย่างไร แล้วแบบไหนเร็วกว่ากัน UNION นั้น เป็นการ Join กันระหว่าง 2 Table ที่มี Columns เหมือนกันทั้งหมด และจะมีการหาข้อมูลซ้ำ เอามาโชว์แค่ตัวเดียว  UNION ALL นั้น ก็เป็นการ Join เหมือนกับ UNION แต่จะไม่มีการหาข้อมูลซ้ำ ซึ่งก็จะทำให้การ Join กันเร็วขึ้น ในกรณีที่เราไม่สนใจว่าข้อมูลเราจะซ้ำหรือป่าว ผลลัพท์ที่ออกมาก็จะออกมาทั้งหมดจิง ๆ ลองเอาไปประยุกต์ใช้ดูได้นะครับบบบบบ