ผู้เขียน หัวข้อ: ฝาก อ.อ๊อด Lab_head ต้องการเพิ่ม index 'lab_receive_number' ได้มั๊ย  (อ่าน 4617 ครั้ง)

0 สมาชิก และ 2 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ anukul

  • Hero Member
  • *****
  • กระทู้: 1,363
  • Respect: +1
    • ดูรายละเอียด
พอดีทาง RAX(LIS) กำลังทำการเชื่อมต่อกับ HOSxP อยู่ แต่พบปัญหาว่า มีการส่ง request จาก LIS ทุก 1 นาที เพื่อไปดู lab request ใหม่ที่มีการรับ lab แล้ว เพื่อนำมาส่งต่อให้ LIS   --> ทำให้ระบบ HOSxP ช้าลงทุกครั้งที่ส่ง request

พบว่า คำสั่ง SQL --> 'SELECT * FROM lab_head JOIN patient ON lab_head.hn=patient.hn WHERE lab_receive_number>" & sLastRecord & " ORDER BY lab_receive_number LIMIT 1'

พอมาดูที่ HOSxP พบว่า lab_receive_number ไม่ได้ทำ index ไว้ คิดว่าอาจเป็นปัญหาให้ระบบช้าลง

ขอสอบถาม ว่า จะเกิดจากปัญหาอะไรได้?  และสามารถเพิ่ม index ใน field นี้ได้เลยมั๊ยครับ  ที่สำคัญ ใช้คำสั่งอะไรครับ  (จำไม่ได้ กลัวมีปัญหา)

ลอง show create table ดู เป็นอย่างข้างล่างครับ

CREATE TABLE `lab_head` (
  `lab_order_number` int(11) NOT NULL default '0',
  `doctor_code` varchar(7) default NULL,
  `lab_items_group_code` int(11) default NULL,
  `vn` varchar(13) default NULL,
  `lab_head_remark` varchar(250) default NULL,
  `hn` varchar(9) default NULL,
  `order_date` date default NULL,
  `report_date` date default NULL,
  `reporter_name` varchar(100) default NULL,
  `report_time` time default NULL,
  `confirm_specimen` char(1) default NULL,
  `confirm_report` char(1) default NULL,
  `department` varchar(5) default NULL,
  `form_name` varchar(200) default NULL,
  `sub_group_list` varchar(200) default NULL,
  `order_time` time default NULL,
  `receive_date` date default NULL,
  `receive_time` time default NULL,
  `ward` char(2) default NULL,
  `result_note` text,
  `lock_result` char(1) default NULL,
  `result_rtf` longtext,
  `order_note` text,
  `lab_receive_number` int(11) default NULL,
  `approve_staff` varchar(25) default NULL,
  `anonymous` char(1) default NULL,
  `appointment` char(1) default NULL,
  `appointment_date` date default NULL,
  `appointment_time` time default NULL,
  `lis_order_no` varchar(25) default NULL,
  `confirm_charge_money` char(1) default NULL,
  `finance_lab_confirm` char(1) default NULL,
  `lab_order_number_guid` varchar(38) default NULL,
  `anonymous_request` char(1) default NULL,
  `clinic` char(3) default NULL,
  `send_to_cashier` char(1) default NULL,
  `receive_computer` varchar(25) default NULL,
  PRIMARY KEY  (`lab_order_number`),
  KEY `confirm_specimen` (`confirm_specimen`),
  KEY `hn` (`hn`),
  KEY `vn` (`vn`),
  KEY `ix_order_date` (`order_date`)
) ENGINE=MyISAM DEFAULT CHARSET=tis620
รพ.มะการักษ์ 260 เตียง
เริ่มระบบ 1 ธค 48 (ทีม MN)
Database structure :HOSxP 3.55.9.21b
Client : 3.55.6.8-3.55.9.21b
Server : Double QuadCore XEON 3.2 G. ECC 18 G. SAS 146 G x4(Raid 5) -- CentOS 5.3 (64 bit) , MySQL 5.1.30 percana
Client : Win2000 ~ 200 clients
Module :
OPD -Register,Screening,Doctor,Dispense,Billing,Dentist,PMMR
IPD - Admit center,Ward,Nutrition,Dispense,LR,OR
LAB , X-ray
การเชื่อมต่อ : LIS             --> RAX
                    X-ray PACS --> Infinitt (ThaiGL)

doramon

  • บุคคลทั่วไป
Re: ฝาก อ.อ๊อด Lab_head ต้องการเพิ่ม index 'lab_receive_number' ได้มั๊ย
« ตอบกลับ #1 เมื่อ: มกราคม 11, 2008, 17:19:51 PM »
0
กำลังดูให้ครับ


ตัวอย่างครับ 

create index ix_hn_regdate on an_stat (hn,regdate)
« แก้ไขครั้งสุดท้าย: มกราคม 11, 2008, 17:22:36 PM โดย doraemon(saiyok) »

ออฟไลน์ anukul

  • Hero Member
  • *****
  • กระทู้: 1,363
  • Respect: +1
    • ดูรายละเอียด
Re: ฝาก อ.อ๊อด Lab_head ต้องการเพิ่ม index 'lab_receive_number' ได้มั๊ย
« ตอบกลับ #2 เมื่อ: มกราคม 11, 2008, 18:07:29 PM »
0
ทดลองสร้าง index เรียบร้อยแล้วครับ  แต่พบว่า พอเรียก SQL นี้ ต้องใช้เวลานานเช่นเดิม (ไม่แน่ใจว่าเร็วขึ้นเล็กน้อยหรือเปล่าครับ)  ใช้เวลา exec time ประมาณ เกือบ 30,000   

ไม่รู้ว่าพอมีวิธีอื่นทำให้สามารถเรียกข้อมูลได้เร็วกว่านี้มั๊ยครับ

 :)
รพ.มะการักษ์ 260 เตียง
เริ่มระบบ 1 ธค 48 (ทีม MN)
Database structure :HOSxP 3.55.9.21b
Client : 3.55.6.8-3.55.9.21b
Server : Double QuadCore XEON 3.2 G. ECC 18 G. SAS 146 G x4(Raid 5) -- CentOS 5.3 (64 bit) , MySQL 5.1.30 percana
Client : Win2000 ~ 200 clients
Module :
OPD -Register,Screening,Doctor,Dispense,Billing,Dentist,PMMR
IPD - Admit center,Ward,Nutrition,Dispense,LR,OR
LAB , X-ray
การเชื่อมต่อ : LIS             --> RAX
                    X-ray PACS --> Infinitt (ThaiGL)

ออฟไลน์ anukul

  • Hero Member
  • *****
  • กระทู้: 1,363
  • Respect: +1
    • ดูรายละเอียด
Re: ฝาก อ.อ๊อด Lab_head ต้องการเพิ่ม index 'lab_receive_number' ได้มั๊ย
« ตอบกลับ #3 เมื่อ: มกราคม 11, 2008, 18:11:09 PM »
0
ลองใช้ SQL ที่ระบุ lab_receive_number ลำดับต่อไป รู้สึกว่าจะเร็วขึ้นมาก 

SELECT * FROM lab_head JOIN patient ON lab_head.hn=patient.hn WHERE lab_receive_number='1027'

ใช้เวลา exec time ~ 15

วันจันทร์จะลองคุยกับ Programer LIS ว่าสามารถปรับคำสั่ง SQL ได้มั๊ย
รพ.มะการักษ์ 260 เตียง
เริ่มระบบ 1 ธค 48 (ทีม MN)
Database structure :HOSxP 3.55.9.21b
Client : 3.55.6.8-3.55.9.21b
Server : Double QuadCore XEON 3.2 G. ECC 18 G. SAS 146 G x4(Raid 5) -- CentOS 5.3 (64 bit) , MySQL 5.1.30 percana
Client : Win2000 ~ 200 clients
Module :
OPD -Register,Screening,Doctor,Dispense,Billing,Dentist,PMMR
IPD - Admit center,Ward,Nutrition,Dispense,LR,OR
LAB , X-ray
การเชื่อมต่อ : LIS             --> RAX
                    X-ray PACS --> Infinitt (ThaiGL)