Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > .NET Framework > Forum > รบกวนสอบถามถึงการดึงข้อมูลจากฐานข้อมูลให้เร็วที่สุด



 

รบกวนสอบถามถึงการดึงข้อมูลจากฐานข้อมูลให้เร็วที่สุด

 



Topic : 126928



โพสกระทู้ ( 177 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์




รบกวนเรียนถามปรมาจารย์แห่ง Thaicreate หลายๆท่านครับ
พอดีผมเองเป็นโปรแกรมเมอร์ในสาย .Net
ใช้ทั้ง VB และ C# พัฒนาโปรแกรมมาได้ 6 ปีแล้ว
ก็เคยใช้ทั้ง ADO.NET, Entity Framework, Linq to SQL ในการเชื่อมต่อและดึงข้อมูลจากฐานข้อมูลมาแสดง
แต่ก็พบว่ายิ่งข้อมูลในฐานข้อมูลมีมาก การดึงข้อมูลจะจะทำได้ช้าลงเรื่อยๆ
และประกอบกับได้ไปนั่งสนทนากับเพื่อซึ่งทำงานธนาคารแห่งหนึ่ง
ก็เลยแอบสอบถามเพื่อนมาว่า

ผม: ปกติแล้วนายสามารถดู Transaction ให้ลูกค้าเวลาลูกค้าโทรมาคิดต่อได้หรือไม่?
เพื่อน: ได้สิ แต่ลูกค้าต้องยืนยันตัวตนให้ผ่านก่อนนะ
ผม: แล้วเวลาดูให้ลูกค้าเนี่ยให้อะไรเป็นคำค้น
เพื่อน: เลขที่ bookbank กับช่วงเวลาที่ต้องการดู
ผม: เคยดูทีเดียวเป็นปีๆเลยมั้ย
เพื่อน: ก็มี
ผม: แล้วเวลากดดูเนี่ยต้องนั่งรอนานมั้ยกว่าข้อมูลจะขึ้น
เพื่อน: ไม่ต้องรอเลย กดก็ขึ้นเลย

ผมนี่หงายท้องตึงเลย โปรแกรมที่ผมพัฒนาและมีลูกค้าใช้อยุ่ในปัจจุบัน
เป็นโปรแกรมประมาณว่า POS แล้วกันนะครับ
ขายของ 1 รายการก็เกิด data 1 row ในตารางการขาย
ก็เดาๆเอาว่าก็น่าจะเหมือนกับแบงค์ที่ใช้ 1 รายการเคลื่อนไหว bookbank เป็น data 1 row
โปรแกรมผมเนี่ยจะเริ่มช้าเห็นภาพชัดก็เมื่อมีข้อมูลประมาณในตารางการขายมีสัก 4 แสน+ row
แค่ 4 แสน row นี่ถ้าผมเรียกดูรายการขายของลูกค้า 1 คน ข้อมูลของลูกค้าคนนี้สัก 1000 row
ใช้เวลาดึงข้อมูลขึ้นมาเฉลี่ย 5-10 วินาที แบบว่านอนรอเลยครับ

ฐานข้อมูลใช้ MS SQL Server 2008 R2, OS Windows Server 2008 R2
Ram 8 GB, CPU ไม่แน่ใจ ทำ Index ไว้เรียบร้อย ฐานข้อมูลก็ไม่ได้ขี้เหร่มากมายเกินไป
ข้อมูลก็ไม่ได้เยอะล้นหลามอะไร ทำไมมันถึงช้าขนาดนี้

* อยากจะรบกวนเอาเป็นแนววิจารณ์ หรือเสนอแนะเลยครับ
อยากฟังมากๆเลย ว่าโปรแกรมใหญ่ๆที่เขาทำกันเยี่ยงไรให้มันเร็วได้
** ขอบพระคุณสำหรับความรู้ และประสบการณ์ที่ท่านจะแบ่งปันไว้ล่วงหน้าครับ
*** หรือท่านใดอยากจะเป็นที่ปรึกษาสอนอะไรเจ๋งๆให้ โดยคิดค่าครูก็ยินดีนะครับ ยินดีซื้อความรู้ใส่หัวครับ



Tag : .NET, Ms SQL Server 2008, Win (Windows App), VB.NET, C#, Windows









ประวัติการแก้ไข
2017-03-23 17:34:21
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-03-23 14:46:05 By : คนงานตัดอ้อย View : 3057 Reply : 28
 

 

No. 1

Guest


ถ้าอยากได้ประสิทธิภาพสูงสุด มันมีอยู่ 2 ปัจจัย
1. มีทุนสูง
--- แน่นอนว่าคุณไม่ได้อยู่เพียงลำพัง
------ เพื่อนแท้ของคุณก็คืออุปกรณ์ระดับบน (Enterprise Hardware)
------ เพื่อนแท้ของคุณก็คือซอฟท์แวร์ระดับบน (Enterprise Software)
------ บุคคลากรระดับบน
--------- แน่นอนว่าต้องมีฝ่าย/แผนก DBA/ผู้บริหาร/etc.. ยั้วเยี้ยไปหมด (มากเสียจนคุณอาจรู้จักแต่ไม่สนิท)

2. ไม่มีต้นทุน(ต้นทุนต่ำ) ผมทำงานอยู่ในระนาบนี้
------ ภรรยาของผมออกไปทำธุระ(อะไรก็ไม่รู้แหล่ว) กลับบ้านตีสองตีสาม ผมยังรอได้เลย
--------- เวลารอของพวกคุณแค่ 5 - 10 วินาที สำหรับผมเอ่ยคำว่า "รับได้แบบสนิทใจ"

ทางเลือกของผมมีไม่มาก อทิเช่น
--- ปรับแต่ง SQL Query
--- แยกแสนให้เหลือพัน เช่น

Code (SQL)
IF OBJECT_ID('tempdb..#TempSEX') IS NOT NULL
    DROP TABLE #TempSEX;

SELECT *
INTO #TempSEX
FROM [DB_Name].[dbo].[msrCustomer]
WHERE CustID =  '1234';
SELECT * FROM #TempSEX WHERE 'หอยงาม' = 'หอยงาม';



ปล. อย่าคาดหวังกับของที่ได้มาในราคาต่ำฯ และทำกำไรให้คุณพึงพอใจ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-23 23:53:00 By : หน้าฮี
 


 

No. 2

Guest


จาก #NO 1 คำว่า "แยกแสนให้เหลือพัน"

ความหมายมันแคบลง/กว้างใหญ่ ขึ้นอยู่กับตัวของคุณจะนิยามเอาเอง
--- กระชับฐานข้อมูล
--- etc...


ตัวอย่างเพื่อทดสอบว่า "คุณมองไกล้หรือว่าคุณมองไกล"
--- ประมาณว่าสรุปยอดขายรายไตรมาส/etc...
Code (SQL)
SELECT DATEADD(mm, (Quarter - 1) * 3, beg_year_date) AS StartDate, 
       DATEADD(dd, -1, DATEADD(mm, Quarter * 3, beg_year_date)) AS EndDate, Quarter, 0.00 AS TotalAmount, '1234' AS SaleCode
FROM
    (
     SELECT '2016-01-01' beg_year_date --วันที่เริ่มต้น (ปีราชการ เริ่มต้น yyyy-10-01สิ้นสุด 30 กันยายนของปีถัดไป)
    ) s
    CROSS APPLY
               (
               SELECT 1 AS Quarter
               UNION ALL
               SELECT 2
               UNION ALL
               SELECT 3
               UNION ALL
               SELECT 4
               ) q;


xSQLQuery_Sample
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-24 08:35:47 By : หน้าฮี
 

 

No. 3

Guest


@คุณคนงานตัดอ้อย
Quote:
ใช้ทั้ง VB และ C# พัฒนาโปรแกรมมาได้ 6 ปีแล้ว

Quote:
หรือท่านใดอยากจะเป็นที่ปรึกษาสอนอะไรเจ๋งๆให้ โดยคิดค่าครูก็ยินดีนะครับ ยินดีซื้อความรู้ใส่หัวครับ


ประสบการณ์ 6 ผมบวกให้อีก 13 = 20 ปี
--- ถ้าคุณไม่สามารถใส่จิตวิญญาณลงไปในชิ้นงานที่คุณเคยทำมาได้ หักลบกลบหนี้มันก็ไม่เหลืออะไร = 0 ปี
--- ผมพกเอาคำว่า "ยินดีพร้อมจ่ายให้กับใครก็ได้" ส่วนวิธีการรับ(ผลประโยชน์) ผมไม่รู้จักและผมละเลยมันมาตั้งนานแล้ว
--- (ศาสตร์ชั้นสูง)
...
...
...


ปล. คนเราคิดไม่เหมือนกันแต่มีเป้าหมายสองเดียวกัน (...)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-24 09:52:04 By : หน้าฮี
 


 

No. 4



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 2 เขียนโดย : หน้าฮี เมื่อวันที่ 2017-03-24 08:35:47
รายละเอียดของการตอบ ::
"แยกแสนให้เหลือพัน"

ชอบมากครับคำนี้

พูดไปพูดมา ถ้าอยากให้เร็วเหมือนต้องรื้อทั้งโครงสร้างเลย 5555
มีไม่ดีอาจจะรื้อทั้งความคิดของโปรแกรมเมอร์ซะใหม่ เพื่อให้ได้โปรแกรมที่ดียิ่งขึ้น เสถียร ยิ่งขึ้นไปอีก


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-24 09:52:10 By : lamaka.tor
 


 

No. 5

Guest


จาก #NO 3 "(ศาสตร์ชั้นสูง)"
--- หมายควยว่า ในยุค "สามยกโปรแกรมเมอร์" ผมเป็น "นักเลงชีวิตในห้วงเวลานั้น"

+55555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-24 10:01:41 By : หน้าฮี
 


 

No. 6

Guest


@คุณ lamaka.tor

ทุกฯสรรพสิ่งมีเกิดมีดับไป ตามธรรมชาติของมัน
--- อะไรก็ตามถ้าสถานะปัจจุบันกำลังเติบโตและยิ่งใหญ่ เช่น แสงนีออน
-------- ผมปล่อยเวลาให้มันสว่างเต็มที่ทั้งวันทั้งคืน (โตจนอิ่มเต็มที่)
----------- เมื่อไหร่ก็ตามที่ความสว่างมันเริ่มลดน้อยถอยลง (ตามธรรมชาติของมัน มีเกิดและมีดับไป)
--------------- ผมก็จะเป็นแสงเทียนเพื่อ "เริ่มให้ความสว่าง" และผมเริ่มรู้จักคำว่า "เติบโต"


สามก๊ก และ สามยก มันก็เป็นอภิมหาอมตะ "นิยายเดียวกัน"
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-24 10:18:19 By : หน้าฮี
 


 

No. 7

Guest


ผมบ่นเล่าไปเรื่อยเปื่อย และไร้สาระเหมือนเดิม +55555

กุนซือและพลทหารในสนามรบ

"กุนซือต่อให้เก่งกาจแค่ไหนแต่รักษาหัวให้อยู่บนบ่าของตัวเองไม่ได้" มันก็ไร้ประโยชน์
--- โดนตัดหัวทิ้งข้างถนนอยู่ข้างหลังไร้คนเหยียบย่ำเพื่อก้าวเดินไปข้างหน้า

"พลทหารต่อให้ไร้ความสามารถน้อยแค่ไหนแต่ตายในสนามรบรักษาหัวให้อยู่บนบ่าของตัวเองไม่ได้" มันก็มีประโยชน์
--- มีแต่คนเหยียบย่ำเพื่อก้าวเดินไปข้างหน้า นับว่ามีประโยชน์


Quote:
คุณธรรมกับผลประโยชน์

นักปราชญ์ผูกพันกันด้วยคุณธรรม
เหตุดังนี้จึงอ่อนโยนคล้ายสายวารินทร์

สามัญชนผูกพันกันด้วยผลประโยชน์
เหตุดังนี้จึงมากมายคล้ายเมรัย

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-24 12:24:48 By : หน้าฮี
 


 

No. 8



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 7 เขียนโดย : หน้าฮี เมื่อวันที่ 2017-03-24 12:24:48
รายละเอียดของการตอบ ::
งานในห้องแล็บวันนี้ครับ
1
2
3

ขอถามนิดนึงครับ
เจ้าสายไฟสีฟ้าๆนั่น ใช่ สายไฟที่ต่อออกมาจากขดลวดรึไม่ ถ้าใช่ปกติไฟต้องถึงกันในแต่ละขดลวดรึป่าวครับ




แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-24 13:02:20 By : lamaka.tor
 


 

No. 9

Guest


จาก #NO7

ผมอยู่ในบริบท "เล่าไปเรื่อยเปื่อย" และผมไม่สามารถนำพาคุณ "ไปในทางที่คุณอยากจะไป"
ผมอยู่ในบริบท "เล่าไปเรื่อยเปื่อย" และผมไม่สามารถนำพาคุณ "กลับในทางที่คุณอยากจะกลับ"


Quote:
โอ้ธารสวรรค์ กว้านพะเยา ธารรักเราครวญคร่ำ
ลมโชยพริ้วฉ่ำ ในวังน้ำวน พร่างพรมมนต์รักมา
ดูราวสายชลธาร ใสตระการ อยู่ในนิทรา
แว่งเพลงรัก ของปักษา ร้องอำลาคืนรัง

...
...
...

โน่นทิวทุ่งลิบ รวงทิพย์เรืองรอง ราวสีทองเปลวฝั่ง
ธาราไหลหลั่งในวังน้ำวน ขังน้ำตาแห่งดาว
ห้วงน้ำลึกนัก ห้วงรักลึกกว่าหลายเท่า
แม้นรักไม่จริงกับเรา อายกว้านพะเยาหลายเท่าเอย



Good Luck.
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-24 13:06:04 By : หน้าฮี
 


 

No. 10

Guest


จาก #NO 8

Quote:
งานในห้องแล็บวันนี้ครับ


... รูปภาพ 1, 2, 3, etc...


ทำให้ผมนึกถึงวลีนี้
--- เตมูจิน ก่อนจะออกรบ เขาถามผู้เฒ่าคนหนึ่งว่า "ท่านผู้เฒ่าท่านลองบอกมาซิว่าอนาคตของข้าจะเป็นเช่นไร?"

ท่านผู้เฒ่าตอบว่า : ท่านรู้อยู่เต็มอก "มหาบุรุษของข้า"
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-24 13:18:27 By : หน้าฮี
 


 

No. 11

Guest


ผมอยู่ในบริบท "เล่าไปเรื่อยเปื่อย" และผมไม่สามารถนำพาอะไรได้

ในบริบทที่ว่า "แม้ว่าผมไม่สามารถกำเอาคำว่า"ชนะ"ได้แบบภาคภูมิใจ"
ในบริบทที่ว่า "แม้ว่าผมไม่สามารถกำเอาคำว่า"พ่ายแพ้"ได้แบบภาคภูมิใจ"

+55555
+55555
+55555

ผมไม่รุกเพื่อให้ได้คำว่าชัยชนะ และผมจะไม่ถอยและรู้จักคำว่า "พ่ายแพ้"
--- ทุกฯเวลานาที


ปล. +55555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-24 13:53:29 By : หน้าฮี
 


 

No. 12

Guest


เล่าเรื่องจริงให้ฟังนะ วันนี้วันที่ 24-มีนาคม-พ.ศ. 2560
คนที่ xxx +55555
เมียสาวข้างกายของผม : 1-10/04/2560 อยากไปประเทศญี่ปุ่น 10 วัน
ผม(ผู้เฒ่า) จัดให้ : สองแสนบาทพอไหม?
เมีย(ผู้เฒ่า) ขอร้อง: ขอเพิ่มอีกหนึ่งแสนบาทไทย

ผม(ผู้เฒ่า) : กัดฟันบัวไม่ให้ช้ำน้ำไม่ให้ขุ่น ได้ครับเมียจ๋า

เมียสาวข้างกายของผม : 1-10/04/2560 อยากไปประเทศเยอรมัน 10 วัน
ผม(ผู้เฒ่า) จัดให้ : สองแสนบาทพอไหม?
เมีย(ผู้เฒ่า) ขอร้อง: ขอเพิ่มอีกหนึ่งแสนบาทไทย

ผม(ผู้เฒ่า) : กัดฟันบัวไม่ให้ช้ำน้ำไม่ให้ขุ่น ได้ครับเมียจ๋า



ปล. ฮียังเลีย ยังทิ้งเฮียไปได้ +55555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-24 14:18:59 By : หน้าฮี
 


 

No. 13

Guest


เพลง ดีที่สุดแล้ว
ศิลปิน เดอะ ซัน
อัลบั้ม ถนนพระอาทิตย์


เหนื่อยใจเหลือเกิน ยิ่งไขว่คว้ายิ่งไกลยิ่งห่าง ยอมแล้วทุกทางไม่เดินต่อไป
หมดสิ้นแรงพลัง หมดความหวังแม้เริ่มต้นใหม่ ท้อแท้เสียใจยับเยินกลับมา

ความดีสั่งสมมานานไม่เคยเพียงพอสักอย่าง ทำดีกี่ครั้งไม่เคยพอใจ
ทำผิดเพียงครั้งก็ซ้ำให้กลายไปเป็นเรื่องใหญ่ นี่ใช่ไหมผลของการทุ่มเท

ทำดีที่สุดแล้วไม่เห็นมีใครเข้าใจ ทำดีที่สุดแล้วชีวิตยังพังทลาย
ต้องอยู่สู้ทน ผ่านคืนวันอันโหดร้าย ขอได้โปรด เห็นใจ

อยากให้เธอเข้ามา จบปัญหาชี้ทางสว่าง มองเห็นหนทางก้าวเดินต่อไป
จุดประกายพลัง จุดไฟหวังให้เริ่มต้นใหม่ คอยพลิกฟื้นหัวใจให้คืนกลับมา

เพียงเธอปลอบโยนเบาๆเข้าใจตัวเราก็พอ มีเธอความท้อก็คงมลาย
เพียงเธอห่วงใยดูแลมั่นใจในชีวิตใหม่ แต่สุดท้ายไม่มีแม้ เธอ

ทำดีที่สุดแล้วไม่เห็นมีใครเข้าใจ ทำดีที่สุดแล้วชีวิตยังพังทลาย
ต้องอยู่สู้ทน ผ่านคืนวันอันโหดร้าย ขอได้โปรดเห็นใจ

ความดีสั่งสมมานานไม่เคยเพียงพอสักอย่าง ทำดีกี่ครั้งไม่เคยพอใจ
ทำผิดเพียงครั้งก็ซ้ำให้กลายไปเป็นเรื่องใหญ่ นี่ใช่ไหมผลของการทุ่มเท

ทำดีที่สุดแล้วไม่เห็นมีใครเข้าใจ ทำดีที่สุดแล้วชีวิตยังพังทลาย
ต้องอยู่สู้ทน หมั่นทำดีกันต่อไป ซักวันหนึ่ง ฮืม...
...
...
...
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-24 19:13:11 By : หน้าฮี
 


 

No. 14

Guest


Quote:
เหนื่อยใจเหลือเกิน ยิ่งไขว่คว้ายิ่งไกลยิ่งห่าง ยอมแล้วทุกทางไม่เดินต่อไป
หมดสิ้นแรงพลัง หมดความหวังแม้เริ่มต้นใหม่ ท้อแท้เสียใจยับเยินกลับมา

ความดีสั่งสมมานานไม่เคยเพียงพอสักอย่าง ทำดีกี่ครั้งไม่เคยพอใจ
ทำผิดเพียงครั้งก็ซ้ำให้กลายไปเป็นเรื่องใหญ่ นี่ใช่ไหมผลของการทุ่มเท

ทำดีที่สุดแล้วไม่เห็นมีใครเข้าใจ ทำดีที่สุดแล้วชีวิตยังพังทลาย
ต้องอยู่สู้ทน ผ่านคืนวันอันโหดร้าย ขอได้โปรด เห็นใจ

อยากให้เธอเข้ามา จบปัญหาชี้ทางสว่าง มองเห็นหนทางก้าวเดินต่อไป
จุดประกายพลัง จุดไฟหวังให้เริ่มต้นใหม่ คอยพลิกฟื้นหัวใจให้คืนกลับมา

เพียงเธอปลอบโยนเบาๆเข้าใจตัวเราก็พอ มีเธอความท้อก็คงมลาย
เพียงเธอห่วงใยดูแลมั่นใจในชีวิตใหม่ แต่สุดท้ายไม่มีแม้ เธอ

ทำดีที่สุดแล้วไม่เห็นมีใครเข้าใจ ทำดีที่สุดแล้วชีวิตยังพังทลาย
ต้องอยู่สู้ทน ผ่านคืนวันอันโหดร้าย ขอได้โปรดเห็นใจ

ความดีสั่งสมมานานไม่เคยเพียงพอสักอย่าง ทำดีกี่ครั้งไม่เคยพอใจ
ทำผิดเพียงครั้งก็ซ้ำให้กลายไปเป็นเรื่องใหญ่ นี่ใช่ไหมผลของการทุ่มเท

ทำดีที่สุดแล้วไม่เห็นมีใครเข้าใจ ทำดีที่สุดแล้วชีวิตยังพังทลาย
ต้องอยู่สู้ทน หมั่นทำดีกันต่อไป ซักวันหนึ่ง ฮืม...
...
...
...

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-24 19:19:55 By : หน้าฮี
 


 

No. 15

Guest



ความต้องการทางธุรกิจบางครั้งมันก็อยู่เหนือ
"การดึงข้อมูลจากฐานข้อมูลให้เร็วที่สุด"
------ ผมพึ่งเขียนสดสดร้อนร้อนเพื่อตอบโจทย์สิ่งเหล่านี้ (เพื่อใช้งานได้จริง 100% ตัวอย่างสมมุติของผมมันก็แค่ 0.000001 %)
------ จริงฯแล้วผมใช้ Store Procedure โดยที่ผมไม่จำเป็นต้องเกาหำให้เหนื่อย (แต่ผมมีเหตุผลบางอย่างที่ผมอยากเกาหำ)

Code (SQL)
;WITH vw2
     AS
        (SELECT *
         FROM
             (
             SELECT IDCardNo AS 'IDCardNo2', Qty AS 'Qty2', Price AS 'Price2'
             FROM _tb2 --งวดปัจจุบัน
             WHERE IDCardNo = '1234'
             EXCEPT
             SELECT IDCardNo, Qty, Price
             FROM _tb1 --งวดก่อนหน้านั้น 1 งวด
             WHERE IDCardNo = '1234'
             INTERSECT
             SELECT IDCardNo, Qty, Price
             FROM _tb1 --งวดก่อนหน้านั้น 1 งวด
             WHERE IDCardNo = '1234'
             ) AS curDiffData
        ),
     vw1
     AS
        (SELECT *
         FROM
             (
             SELECT IDCardNo AS 'IDCardNo1', Qty AS 'Qty1', Price AS 'Price1'
             FROM _tb1 --งวดก่อนหน้านั้น 1 งวด
             WHERE IDCardNo = '1234'
             EXCEPT
             SELECT IDCardNo, Qty, Price
             FROM _tb2 --งวดปัจจุบัน
             WHERE IDCardNo = '1234'
             INTERSECT
             SELECT IDCardNo, Qty, Price
             FROM _tb2 --งวดปัจจุบัน
             WHERE IDCardNo = '1234'
             ) AS prevDiffData
        )
SELECT vw2.*, 
       vw1.*, 
       ABS(vw2.Price2 - vw1.Price1) AS 'DiffPrice', 
       CASE ABS(vw2.Price2 - vw1.Price1) WHEN 0.00 THEN 0 ELSE 1 END AS 'ChgFlag1'
FROM vw2 FULL JOIN vw1 ON vw2.IDCardNo2 = vw1.IDCardNo1



ปล. ก็ลองคิดเอาเองก็แล้วกันครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-26 22:54:40 By : หน้าฮี
 


 

No. 16

Guest


จาก #NO 15 ผมไม่ใช่เจ้าของบ้าน
ในทุกฯเวียนวน อทิเช่น ฤดูกาลหน้าร้อน/หน้าหนาว
--- ผมคือหญ้าที่เจ้าของบ้านปลูกเอาไว้ ถ้าเขากรุณา "รดน้ำหนึ่งวันและเว้นไปอีกเจ็ดวัน"
------ ผมคงมีชีวิตรอดไปจนถึง "ฤดูฝนหน้า"


ปล. ผ่านร้อนผ่านหนาวผ่านฝน ผมก็ยังเป็นหญ้าเหมือนเดิม +55555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-26 23:14:33 By : หน้าฮี
 


 

No. 17

Guest


Quote:
https://www.youtube.com/watch?v=wsHNUOgJJZU


x_kong_01

Quote:
คำว่าฮักเกิดขึ้นที่ใด เกิดกับไผมันบ่สำคัญ
มันจะอยู่ตรงนั้น บ่หายตามกาล เวลา
ว่าสิผ่านมาดนปานใด๋ ในหัวใจบ่เคยร้างลา
ยังจดจำทุกถ้อยวาจาที่เฮาเว้าต่อกัน

เมื่อสวรรค์แยกกายเฮาสอง จากคู่ครองเป็นคนอื่นไกล
เหลือแต่คำสัญญาใช่ไหมที่ยัง คงอยู่
แม้นว่าเจ้าสิเกิดเป็นหยัง บ่เคยคิดซัง ย้อนฮักคนฮู้
สิเคียงข้าง ให้ได้ฮู้ หัวใจยังคงเดิม

* บ่มีอีหยังมาพังทลาย ความฮักเฮาสองลงได้
แม้ดินสลายยังมั่นคงคือจั่งตอนเริ่ม
ฮักที่แลกด้วยแหกกฏฟ้า ถึงมีน้ำตาเข้ามาแต่งเติม
ความปวดร้าวสิเข้ามาเสริม บ่เคยคิดย่าน

** ในวันนี้เฮาเจอกันแล้ว ยังบ่แคล้วจำต้องจากลา
คนที่เฮาตามหา เป็นหยังคือบ่ สมใจ
ให้คองถ่าอีกกี่พันปี ให้อยู่ตรงนี้อีกนานเท่าไหร่
ขอเพียงแค่ เธอจำฉันได้ ชาติไหนก็รอเธอ

ซ้ำ ( * , ** )

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-27 01:04:51 By : หน้าฮี
 


 

No. 18

Guest


x_kong_02
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-27 01:36:06 By : หน้าฮี
 


 

No. 19



โพสกระทู้ ( 177 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์




ขอบพระคุณครับ ท่านหน้าฮี และท่านTOR_CHEMISTRY
ขอบพระคุณสำหรับคิวรี่สวยๆครับ

สงสัยความรู้ที่ท่านได้ให้ไว้ ผมคงจะเข้าใจได้ยาก
ชนชั้นแรงงานใช้แต่กำลังในการตัดอ้อยอย่างผม
สงสัยจะต้องนั่งอ่านและทำความเข้าใจไปทีละน้อยอีกนานแสนนานถึงจะเข้าใจ

ขอบพระคุณอีกครั้งครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-27 17:11:04 By : คนงานตัดอ้อย
 


 

No. 20

Guest


Quote:
https://www.youtube.com/watch?v=8kQZHYbZkLs&list=PLGEDwqYmb0hKS3AW9D4VF5XFXsbCiyMoq


spilit_001
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-27 20:27:40 By : หน้าฮี
 


 

No. 21



โพสกระทู้ ( 328 )
บทความ ( 0 )



สถานะออฟไลน์


พ่อ แม่ไม่รักหรอครับ ?? คุณสุททรภู่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-28 00:05:20 By : Luz
 


 

No. 22

Guest


อาจารย์หน้าฮี ท่านก็เป็นแบบนี้ล่ะ ต้องอ่านดีๆ และต้องลองทำตาม ทดสอบโค้ดที่ให้มา
อย่างเช่น
Quote:
ถ้าอยากได้ประสิทธิภาพสูงสุด มันมีอยู่ 2 ปัจจัย
1. มีทุนสูง
--- แน่นอนว่าคุณไม่ได้อยู่เพียงลำพัง
------ เพื่อนแท้ของคุณก็คืออุปกรณ์ระดับบน (Enterprise Hardware)
------ เพื่อนแท้ของคุณก็คือซอฟท์แวร์ระดับบน (Enterprise Software)
------ บุคคลากรระดับบน
--------- แน่นอนว่าต้องมีฝ่าย/แผนก DBA/ผู้บริหาร/etc.. ยั้วเยี้ยไปหมด (มากเสียจนคุณอาจรู้จักแต่ไม่สนิท)

2. ไม่มีต้นทุน(ต้นทุนต่ำ) ผมทำงานอยู่ในระนาบนี้
------ ภรรยาของผมออกไปทำธุระ(อะไรก็ไม่รู้แหล่ว) กลับบ้านตีสองตีสาม ผมยังรอได้เลย
--------- เวลารอของพวกคุณแค่ 5 - 10 วินาที สำหรับผมเอ่ยคำว่า "รับได้แบบสนิทใจ"

ทางเลือกของผมมีไม่มาก อทิเช่น
--- ปรับแต่ง SQL Query
--- แยกแสนให้เหลือพัน เช่น


ถ้าเข้าใจตรงนี้แสดงว่าเข้าใจครับ เพราะ Hardware แรง(การออกแบบ Database ไม่ดีมีส่วนช่วยได้)
แต่ Hardware ไม่แรง แต่ Software + Database ดีมีส่วนช่วยได้
หลักๆ จริงๆแล้วนั้นส่วนมากจะอยู่กับการออกแบบ Database และการออกแบบ Query
ถ้าอยากทราบว่ามันช้าตรงไหน ต้องตัดการ Query ออกเป็นส่วนๆดูครับ ว่าตรงไหนที่มันช้าครับ หรือไม่ก็ดู Display Estimated Execution plan ของ Query ก็ได้ครับ
มีการ join เยอะไปไหม สิ่งที่ต้องการให้แสดงเริ่มต้นมีมากเกินไปไหม คือไม่ใช่ต้องเอาทุกอย่างมาแสดงครั้งเดียว
และความสัมพันธต่างๆ ของแต่ละเทเบิลเยอะไปไหม


ประมาณนี้ครับ แต่ผมก็อยากเห็น Query ที่ว่าช้าอยู่นะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-28 17:10:22 By : บัญดิษฐ
 


 

No. 23



โพสกระทู้ ( 821 )
บทความ ( 0 )



สถานะออฟไลน์


ผมว่าลองทำข้อมูลเทสดูก็ได้น่ะครับ
เอาแค่ Table เดียวก็พอ

อัดข้อมูลเข้าไปสักล้านบรรทัด
แล้ว query ออกมา

ถ้า server มันทำงานได้รวดเร็วดี
ก็คงเป็นเพราะอย่างอื่นแล้วล่ะครับ

อาจจะ index ไม่ดี หรือ index มันพัง
หรืออาจจะมี index แต่เวลาใช้ ดันไปเรียกใช้ field ที่ไม่ได้ทำ index ไว้

หรืออาจจะมีการ join ไปหลาย ๆ table และบาง table ก็ไม่ได้ทำ index ไว้

มีการใช้ function ใน query หรือใช้ พวก in (อันนี้ตัวทำช้าเลย)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-28 19:35:20 By : fonfire
 


 

No. 24



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ปกติแล้วแค่ Transaction ข้อมูลพวกนี้มันไม่ได้ไป JOIN อะไรซับซ้อนครับ ไม่น่าจะ Query นานมากครับ ผมไม่รู้ว่าพวก Bank เค้ามีการจัดการข้อมูลประมาณว่า 3-4 ปี Keep ข้อมูลไปไว้อีกชุดหนึ่งหรือไม่ แต่โดยปกติแล้ว Server พวกนี้ประสิทธิภาพสูงอยู่แล้วครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-28 19:46:45 By : mr.win
 


 

No. 25

Guest


อะไรก็ตามถ้าผมยังไม่รู้ ผมเจาะจงอ่านตำราฝรั่ง (ทั้งฯที่ผมพูดภาษาฝรั่งไม่เป็น)
--- อะไรที่ผมรู้แล้วและไม่ได้ใช้งานบ่อยฯ บางครั้งผมก็ลืมแต่จำได้ว่า "เคยเข้าใจและจะหามันได้จากที่ไหน"
------ โดยที่ผมไม่จำเป็นต้องกลับไปอ่านตำราของฝรั่งในเรื่องนั้นฯอีกครั้งหนึ่ง


มีอยู่ประโยคหนึ่งที่มีคนเคยเขียนเอาไว้
--- บนความต้องการของคนฯหนึ่งอยาก "สอนให้ หมูเห็ดเป็ดไก่" ให้ปีนต้นไม้เป็น ซึ่งมันก็สามารถทำได้
--- แต่บนความต้องการของอีกคนหนึ่งอาจจะบอกว่า "ผมยอมลงทุนจ้างกระรอกเสียยังดีกว่า"


+55555

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-28 21:16:04 By : หน้าฮี
 


 

No. 26

Guest


ผมเกิดมาตัวเล็ก ผอมบาง(อย่างอื่นก็เล็กตามไปด้วย) ส่วนสูงวัดได้แค่ 142 เซนติเมตร
แต่น้ำหนักมันตรงข้ามกัน ผมหนัก 89 กิโลกรัม

...
...
...


ปล. ผมแอบกระซิบกับเพื่อนฯของภรรยาของผมว่า "ที่มันหนักเป็นเพราะ หำล้วนฯ"
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-28 21:45:37 By : หน้าฮี
 


 

No. 27

Guest


โดยธรรมชาติผมเกิดมาเป็นพ่อค้า
--- ทุกฯความหวังดีบนหลายฯความห่วงใย "ผมไม่เคยลืมคำว่า กำไร/ขาดทุน"

ภาษาสากล 1 + 1 = 2 ณ. ประเทศไทย
ภาษาสากล 1 + 1 = 2 ณ. พม่า
ภาษาสากล 1 + 1 = 2 ณ. ลาว
ภาษาสากล 1 + 1 = 2 ณ. กัมพูชา
...

ภาษาคอมพิวเตอร์ก็เช่นเดียวกัน
VB 1 + 1 = 2
C# 1 + 1 = 2
JAVA 1 + 1 = 2
...
...
...
ภาษาใบ้ 1 + 1 = 2

บนโลกใบนี้ไม่มีมีภาษาคอมพิวเตอร์ใดฯที่คำนวณ 1 + 1 <> 2

ปล. ถ้ามีกรุณายกตัวอย่าง (ภาษาอะไรหว่า?) +55555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-28 22:11:05 By : หน้าฮี
 


 

No. 28

Guest


สมมุติว่าผมเกิดมาทันในยุคสุนทรภู่ (สมมุตินะ)

วลีที่ผมเอ่ยมาโดยตั้งใจ/ไม่ตั้งใจก็ตาม
Quote:
โดยธรรมชาติผมเกิดมาเป็นพ่อค้า
--- ทุกฯความหวังดีบนหลายฯความห่วงใย "ผมไม่เคยลืมคำว่า กำไร/ขาดทุน"



ท่านสุนทรภู่คงเกลาให้เป็นแบบนี้

Quote:
โดยธรรมชาติของตัวผมเองเกิดมาเป็นพ่อค้า
--- ทุกฯความหวังดีที่แอบซ่อนในหลายฯความห่วงใย "กำไร/ขาดทุน/มันมีไม่ขาดทุนและไม่ได้กำไร"


...
...
...


ผมและภรรยา "ในห้วงอารมย์ จุ๊บฯฯฯ" ถ้าผมคิดเรื่องกำไร/ขาดทุน
--- เธออยู่ข้างบน 2 นาที ผมอยู่ข้างล่าง (เตียงร้องครางอี๊ดอ๊าดฯ)

ผมและภรรยา "ในห้วงอารมย์ จุ๊บฯฯฯ" ถ้าผมคิดเรื่องกำไร/ขาดทุน
--- ผมอยู่ข้างบน 2 นาที เธออยู่ข้างล่าง(เตียงร้องครางอี๊ดอ๊าดฯ)


ณ.เวลานั้นผมและภรรยาของผมต่างไม่ได้คิดถึงคำว่า "กำไร/ขาดทุน"
--- คำว่า "กำไร/ขาดทุน" มันก็ใช้ไม่ได้ ในบางสถานะการณ์
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-28 23:08:37 By : หน้าฮี
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนสอบถามถึงการดึงข้อมูลจากฐานข้อมูลให้เร็วที่สุด
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่