BMS-HOSxP Community
HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: AOFDEVIL ที่ สิงหาคม 19, 2010, 13:28:33 PM
-
สวัสดีครับ
คือผม อยากทราบว่าเวลาที่เรา query ข้อมูลที่ต้องออกมา ใน ช่วงเวลา นั้น ทำไมถึงทำให้ เครื่อง client ค้างทุกครั้ง ทั้งๆ ที่บางครั้งไม่ได้ดึงข้อมูลเยอะ ถ้าทำให้ค้างทุกครั้ง query ไม่สามารถทำต่อไปได้ ก็จะทำให้งานที่ได้รับมาช้าตามไปด้วย ผมไม่แน่ใจว่าเกิดจากอะไรเพราะสาเหตุใด ไม่ทราบว่าที่อื่นได้เจอปัญหาแบบนี้บ้างหรือป่าว หรือเป็นที่ที่ของผมทีเดียว มีวิธีแก้ยังไงบ้างครับ
รบกวนทุกๆท่านด้วยนะครับ
ขอบคุณครับ
-
ต้องดูคำสั่ง sql ด้วย ลองส่งตัวอย่างขึ้นมาดูพร้อมกับ my.cnf ด้วยครับ
-
นี่ครับตัวอย่างโค้ด
select distinct v.hn,v.cid,v.vstdate,p.pname as 'คำนำหน้า',p.fname as 'ชื่อ', p.lname as 'สกุล',pt.name as 'สิทธิ์การรักษา' , n.name as 'เชื้อชาติ'
from vn_stat v
LEFT OUTER JOIN patient p ON p.hn=v.hn
LEFT OUTER JOIN pttype pt ON pt.pttype=v.pttype
LEFT OUTER JOIN nationality n ON n.nationality=p.nationality
left outer join thaiaddress t1 on t1.chwpart=p.chwpart and
t1.amppart="00" and t1.tmbpart="00"
left outer join thaiaddress t2 on t2.chwpart=p.chwpart and
t2.amppart=p.amppart and t2.tmbpart="00"
left outer join thaiaddress t3 on t3.chwpart=p.chwpart and
t3.amppart=p.amppart and t3.tmbpart=p.tmbpart
where spclty in ('12','13','14') and vstdate between '2010-07-01' and '2010-07-31' and
v.pttype in ('10','11','22','23','34','35','36','37','90','91','92','93','94','95','96','98','99')
group by v.hn
ปล. ยัง join table ไม่ครบนะครับ ผม ทดสอบแค่นี่ client ก็ค้างแล้วครับ ก็เลยไม่ได้ทำต่อ
นี่ครับ my.cnf
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
#basedir = /var/lib/mysql
#datadir = /var/lib/mysql/data
default-character-set=tis620
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 384M
max_allowed_packet = 16M
table_cache = 1M
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 2M
max_heap_table_size = 128M
myisam_sort_buffer_size = 128M
thread_cache = 8
query_cache_size= 256M
thread_concurrency = 8
default-character-set=tis620
skip-name-resolve
innodb_file_per_table
skip-character-set-client-handshake
init_connect = 'SET NAMES tis620'
max_connections = 1000
innodb_data_home_dir = /var/lib/mysql/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/lib/mysql/
############################# mysql 5.1.X
#innodb_log_arch_dir = /var/lib/mysql/
#############################
innodb_buffer_pool_size = 1000M
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
#server-id=1
#log-bin
#sync_binlog=1
#innodb_safe_binlog
[mysqldump]
quick
max_allowed_packet = 16M
allow-keywords
[mysql]
no-auto-rehash
default-character-set=tis620
[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
-
;D ;D ;D อย่าให้ไอ้มะปรางเดินผ่านศูนย์คอมฯนะครับอาการ Server แฮ้งค์จะเกิดขึ้นทันที ทางที่ดีเอาไปไปโกนหัวบวชชีแก้บนรับรองหาย 55555 มีอยู่วันหนึ่งผมช่วยดูข้อมูล PCU ให้ชั่วโมงนึงเครื่องแฮ้งค์ 10 รอบ โอ..จอร์จ ;D ;D ;D
-
;D ;D ;D อย่าให้ไอ้มะปรางเดินผ่านศูนย์คอมฯนะครับอาการ Server แฮ้งค์จะเกิดขึ้นทันที ทางที่ดีเอาไปไปโกนหัวบวชชีแก้บนรับรองหาย 55555 มีอยู่วันหนึ่งผมช่วยดูข้อมูล PCU ให้ชั่วโมงนึงเครื่องแฮ้งค์ 10 รอบ โอ..จอร์จ ;D ;D ;D
สงสัยจะไม่ได้อ่ะครับ เพราะ นั่ง อยู่ข้างห้องเลยครับ ;D :D ;) :)
แต่ปัญหาที่เกิดจากการ Query ไม่รู้จะแก้ตรงไหนอ่ะครับ ไม่ให้มัน ค้าง อ่ะครับ เพราะมันไม่สามารถดึงข้อมูลที่ต้องการได้เลยครับ
-
ผม run ไม่ถึงวินาทีเลย ก็ได้ผลลัพธ์แล้วครับ
แนะนำเกี่ยวกับ SQL
ถ้า distinct v.hn แล้วไม่ต้อง group by v.hn ก็ได้ครับ แต่ต้องเอา v.vstdate ออกด้วยจึงจะถูกต้องครับ
ถ้าเอา v.vstdate ไว้ (ไม่รู้ว่าต้องใช้เพื่ออะไร) และ group bu v.hn มันจะแสดง vstdate แรกที่เจอครับ
-
วิธีแก้ปัญหาเบื้องต้นง่ายๆ คือเวลาดึงข้อมูลให้ไปดึงจากตัว slave แทน รับรองเครื่อง client ไม่ค้างแน่นอนครับ แล้วปัญหาอื่น ค่อยค้นหาและตามแก้ทีหลัง(โดยปกติจะไม่ดึงข้อมูลจากตัว sever หลักอยู่แล้วนี่ครับ ยกเว้นมี server ตัวเดียวซึ่งอันตรายมาก อาจจะสั่นคลอนตำแหน่งท่านได้เลยนะ ต้องรีบจัดหา server เพิ่มโดยด่วน ;D)
-
ขอบคุณทุกท่านครับ
เด๋วจะลองดูอีกที
ก็เสียวๆอยู่เหมือนกันเพราะมี server ตัวเดียว แต่คาดว่าน่าจะได้ ตัวที่ทำ Slave เร็วๆนี้แหละครับ จะได้ไม่มีปัญหาในการดึงข้อมูล