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,037

HOME > PHP > PHP Forum > ปรึกษาเรื่องการ optimize query ในฐานข้อมูล Sql Server จ้า



 

ปรึกษาเรื่องการ optimize query ในฐานข้อมูล Sql Server จ้า

 



Topic : 136618



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



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




ปัจจุบันฐานข้อมูลมีการเก็บข้อมูลของผู้ใช้งานในทุกวัน ซึ่งข้อมูลของแต่ละวันจะถูกเก็บลงในตารางของแต่ละเดือนเช่น
ข้อมูลวันที่ 3 เดือนมีนา เก็บลงในตารางชื่อ table_mar ลักษณะนี้ เดือนๆนึงก็จะมีปริมาณของข้อมูลมหาศาล ( 100ล้าน row )

แต่เนื่องจากมี query ที่ใช้ระยะเวลานานในการประมวลผลประมาณ 9-10 วิ
และใน table ที่ดึงข้อมูล ถ้าเป็นเดือนปัจจุบันก็ยังมีข้อมูลผู้ใช้งานวิ่งเข้าปกติ ( write ) ส่งผลให้เมื่อมีคำสั่งที่ query นานๆ
ทำให้ write ข้อมูลใหม่ไม่ได้ ( table lock )

ในลักษณะแบบนี้พี่ๆมีแนวทางในการ optimize query หรือทำยังไงจะแก้ปัญหาลักษณะนี้ได้บ้างคะ ขอบคุณคะ
ด้านล่างคือตัวอย่าง query ที่จำเป็นต้องใช้คือนับว่าในช่องรายการนี้มีคนชมกี่คนในช่วงเวลาที่กำหนดเอง

select idช่องรายการที่ผู้ใช้ดู,idผู้ใช้,count(CASE WHEN เวลารับชม >= '2022-02-23 00:00:01'
and เวลารับชม <= '2022-02-23 01:00:00' THEN '1' END ) as '00:00-01:00'
,count(CASE WHEN เวลารับชม >= '2022-02-23 01:00:01'
and เวลารับชม <= '2022-02-23 02:15:00' THEN '1' END ) as '01:00-02:15'
,count(CASE WHEN เวลารับชม >= '2022-02-23 02:00:01'
and เวลารับชม <= '2022-02-23 03:25:00' THEN '1' END ) as '02:00-03:25'
,count(CASE WHEN เวลารับชม >= '2022-02-23 03:00:01'
and เวลารับชม <= '2022-02-23 04:00:00' THEN '1' END ) as '03:00-04:00'
,count(CASE WHEN เวลารับชม >= '2022-02-23 04:00:01'
and เวลารับชม <= '2022-02-23 05:00:00' THEN '1' END ) as '04:00-05:00'
,count(CASE WHEN เวลารับชม >= '2022-02-23 05:00:01'
and เวลารับชม <= '2022-02-23 06:00:00' THEN '1' END ) as '05:00-06:00'
,count(CASE WHEN เวลารับชม >= '2022-02-23 06:00:01'
and เวลารับชม <= '2022-02-23 07:00:00' THEN '1' END ) as '06:00-07:00'
,count(CASE WHEN เวลารับชม >= '2022-02-23 07:00:01'
and เวลารับชม <= '2022-02-23 08:00:00' THEN '1' END ) as '07:00-08:00'
,count(CASE WHEN เวลารับชม >= '2022-02-23 08:00:01'
and เวลารับชม <= '2022-02-23 09:33:00' THEN '1' END ) as '08:00-09:33'
,count(CASE WHEN เวลารับชม >= '2022-02-23 09:00:01'
and เวลารับชม <= '2022-02-23 10:00:00' THEN '1' END ) as '09:00-10:00'
,count(CASE WHEN เวลารับชม >= '2022-02-23 10:00:01'
and เวลารับชม <= '2022-02-23 11:45:00' THEN '1' END ) as '10:00-11:45'



from ข้อมูลผู้ใช้เดือน_2
where เวลารับชม >= '2022-02-23 00:00:01'
and เวลารับชม <= '2022-02-23 23:59:59'
and idช่องรายการที่ผู้ใช้ดู > 0
group by idช่องรายการที่ผู้ใช้ดู , idผู้ใช้



Tag : PHP, Ms SQL Server 2008







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2022-03-11 14:46:15 By : doodd View : 485 Reply : 2
 

 

No. 1



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


สิ่งที่ต้องมี คือ index ของ ฟีลด์ที่ต้องการค้นหา

เช่น เวลารับชม
id ผู้ใช้
id ช่อง






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-03-12 08:54:47 By : Chaidhanan
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : Chaidhanan เมื่อวันที่ 2022-03-12 08:54:47
รายละเอียดของการตอบ ::
ขอบคุณค้า

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-03-14 10:06:36 By : dew
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ปรึกษาเรื่องการ optimize query ในฐานข้อมูล Sql Server จ้า
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 02
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 อัตราราคา คลิกที่นี่