คำถามติดแท็ก performance

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

1
Qcache_free_memory ยังไม่เต็ม แต่ฉันได้รับ Qcache_lowmem_prunes จำนวนมาก
ฉันเพิ่งเริ่มเล่นน้ำกับแคชแบบสอบถามสำหรับ CMS ของเรา ทุกคนสามารถบอก (หรืออย่างน้อยให้เดาดี) เหตุผลที่ผมได้รับเป็นจำนวนมากของQcache_lowmem_prunesเมื่อมากกว่าครึ่งหนึ่งของQcache_free_memoryฟรี? query_cache_size=512M query_cache_limit=1M นี่คือลักษณะที่จะดูแลประมาณ 12 ชั่วโมง show status like '%qcach%'; +-------------------------+-----------+ | Variable_name | Value | +-------------------------+-----------+ | Qcache_free_blocks | 10338 | | Qcache_free_memory | 297348320 | | Qcache_hits | 10254104 | | Qcache_inserts | 6072945 | | Qcache_lowmem_prunes | 725279 | | Qcache_not_cached | …

1
ล้างแคชของเซิร์ฟเวอร์ SQL และดิสก์ I / O
เรากำลังยุ่งกับการทดสอบระบบ OLTP ที่เราพัฒนาขึ้นใน. NET 4.0 และรัน SQL Server 2008 R2 ที่ด้านหลัง ระบบใช้คิวตัวแทนการบริการเซิร์ฟเวอร์ SQL ซึ่งมีประสิทธิภาพมาก แต่เรากำลังประสบกับแนวโน้มที่แปลกประหลาดขณะประมวลผล การร้องขอการประมวลผลของ SQL Server ที่อัตราการพองตัวเป็นเวลา 1 นาทีตามด้วยกิจกรรมการเขียนดิสก์ที่เพิ่มขึ้น ~ 20 วินาที กราฟต่อไปนี้แสดงให้เห็นถึงปัญหา Yellow = Transactions per second Blue = Total CPU usage Red = Sqlsrv Disk Write Bytes/s Green = Sqlsrv Disk Read Bytes/s ในระหว่างการแก้ไขปัญหาเราลองทำสิ่งต่อไปนี้โดยไม่มีการเปลี่ยนแปลงที่สำคัญในรูปแบบ: บริษัท ตัวแทนการเซิร์ฟเวอร์ …

3
การรั่วไหลของประสิทธิภาพ INNODB อยู่ที่ไหน
ฉันมีปัญหาแปลก ๆ ซึ่งฉันไม่สามารถแก้ไขได้ ฉันเป็นโปรแกรมเมอร์เว็บมากกว่าผู้ดูแลเซิร์ฟเวอร์ / ฐานข้อมูลดังนั้นฉันหวังว่าจะมีใครบางคนที่นี่ที่สามารถช่วยฉันได้ สถานการณ์ ฉันทำงานในระบบที่จัดการจำนวนมากupdate, insertและdeleteการร้องขอ ด้วยเหตุนี้ฉันจึงเลือก INNODB เป็นเครื่องมือเก็บข้อมูลสำหรับความสามารถในการล็อคแถว เรากำลังอัปเดต 60,000 ระเบียนทุก ๆ 10 นาทีโดยใช้ Gearman เพื่อทำงานของเราบนเซิร์ฟเวอร์ที่แตกต่างกัน รหัสอยู่ใน PHP และเราใช้ Zend Framework ปัญหา SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction เราได้รับข้อผิดพลาดด้านบนเกือบทุก 30 นาทีจากหนึ่งในคนงาน Gearman ของเรา mysql_report MySQL 5.1.63-0+squeeze1 uptime 15 9:52:12 Tue Sep …

2
กลยุทธ์ในการจัดการ SQL Server DB ที่มีไฟล์ (BLOBs) มากเกินไปหรือไม่?
สถานการณ์จำลอง: ฐานข้อมูล SQL Server 2005 ที่ให้บริการแอปพลิเคชัน ASP.NET (บนเว็บเซิร์ฟเวอร์แยกต่างหาก) ฐานข้อมูล: DB มีข้อมูล "ปกติ" อยู่ประมาณ 5GB และ "ไฟล์" ประมาณ 15GB (เช่น: ไฟล์ PDF ขนาด 200k ที่จัดเก็บเป็นรูปภาพ (BLOB) ซึ่งเป็นสิ่งนั้น) มีผู้ใช้อัพโหลดไฟล์มากขึ้นและใช้พื้นที่ดิสก์มากขึ้นอย่างรวดเร็ว (ฐานข้อมูลอาจเพิ่มเป็น 50GB ในอีกไม่กี่เดือนข้างหน้าซึ่งส่วนใหญ่เป็นไฟล์) ข้อกังวล: การ จัดเก็บไฟล์จำนวนมากในฐานข้อมูลก่อให้เกิดปัญหาอยู่แล้ว (เช่น: ขนาดรวมขนาดใหญ่ของฐานข้อมูลทำให้การสำรองข้อมูลทั้งฐานข้อมูลเป็นครั้งคราวและการปรับใช้ทำได้ยาก) และเรามีความกังวลใจที่มีจะมีปัญหามากขึ้น (เช่น: ปัญหาด้านประสิทธิภาพ - อาจเกิดจากการไม่สามารถเก็บ DB ทั้งหมดไว้ใน RAM ได้หรือไม่?) คำถาม: คุณจะแนะนำวิธีแก้ปัญหาทางเทคนิคให้กับปัญหานี้อย่างไร? เก็บไฟล์ไว้ในระบบไฟล์หรือไม่? แยกฐานข้อมูลเป็นสองและมีหนึ่งที่ใหญ่กว่าช้าลงสำหรับไฟล์? รายละเอียดเพิ่มเติมหากจำเป็น: ไฟล์เหล่านี้ไม่สำคัญอย่างยิ่งและไม่ต้องการเวลาในการเข้าถึงที่รวดเร็วมาก …

1
ประสิทธิภาพของ InnoDB INSERT
สวัสดีฉันกำลังเรียกใช้ Percona Server เวอร์ชันล่าสุด รุ่นเซิร์ฟเวอร์: 5.5.24-55 Percona Server (GPL), Release 26.0 ฉันมีซีพียู 10 กล่องของคุณสมบัติเหล่านี้ processor : 0 vendor_id : AuthenticAMD cpu family : 16 model : 9 model name : AMD Opteron(tm) Processor 6128 stepping : 1 microcode : 0x10000d9 cpu MHz : 800.000 cache size : 512 KB มันมี …

5
ตัวสร้างโปรไฟล์ SQL มีผลต่อประสิทธิภาพของเซิร์ฟเวอร์หรือไม่?
ฉันกำลังประสบปัญหาที่ sql server 2008 ล้มเหลวสำหรับการโหลดสูง ฉันต้องการค้นหากรณีโหลดนั้นและจำเป็นต้องปรับโค้ดให้เหมาะสมเพื่อให้สามารถจัดการกับโหลดได้ ฉันพบบนอินเทอร์เน็ตว่าสามารถใช้ตัวสร้างโปรไฟล์ SQL เพื่อติดตามการโต้ตอบของฐานข้อมูลซึ่งสามารถวิเคราะห์ในภายหลังเพื่อค้นหาจุดที่แน่นอนที่เกิดปัญหา ฉันได้พบว่าเราจะเริ่มต้น sql profiler ได้อย่างไร แต่ตอนนี้คำถามของฉันคือการเริ่มตัวสร้างโปรไฟล์ sql ฉันจะส่งผลต่อประสิทธิภาพของเซิร์ฟเวอร์หรือไม่

3
แคชฐานข้อมูล MySQL ในหน่วยความจำ
ฉันมีปัญหากับเว็บไซต์ที่มีฐานข้อมูล MySQL 600MB เว็บไซต์ช้าเกินไป ฉันสังเกตว่าฐานข้อมูล MySQL ที่ใหญ่ขึ้นนั้นจะช้าลง เมื่อมันเป็น 5MB เว็บไซต์นั้นเร็วมาก เมื่อมันเริ่มมีขนาดใหญ่ขึ้นมันก็เริ่มช้าลงและช้าลงและตอนนี้ที่ 600MB มันช้าจริงๆใช้เวลาในการโหลดหน้าเว็บประมาณ 10 วินาที ฉันตรวจสอบกระบวนการด้านบนและไม่มีอะไรเกี่ยวข้องกับโหลดสูงหรืออะไร มันไม่ได้เกี่ยวข้องกับ IOPS เมื่อฉันทำการทดสอบบนไดรฟ์ HDD 7.2k rpm และมันก็มีปัญหาแบบเดียวกันตอนนี้กับการทดสอบกับไดรฟ์ Intel 320 SSD ดังนั้นฉันไม่คิดว่ามันจะเป็นการสืบค้นที่สูง เว็บไซต์กำลังใช้งาน Wordpress และมีปลั๊กอินที่เหมือนกัน 9 รายการ มีคนบอกว่ามันอาจเป็นปลั๊กอิน ... บางทีอาจจะ ... แต่ตอนนี้ฉันแค่ต้องการแคชฐานข้อมูลทั้งหมดในหน่วยความจำและต้องการขอความช่วยเหลือและทิศทางในการเริ่มต้นและวิธีการที่จะทำ ฉันมี 16GB RAM และ i5-2400 4 cores ที่ 3.1 GHz ระบบปฏิบัติการคือ centos 5.7 …

4
ช่วยฉันเลือกชุดค่าระดับ RAID สำหรับอินสแตนซ์ของ SQL Server 2008
ฉันจะสร้างเซิร์ฟเวอร์ IBM 3400 ขึ้นใหม่ตั้งแต่ต้น เซิร์ฟเวอร์นี้ทุ่มเทให้กับอินสแตนซ์ SQL Server 2008 ที่ทำงานบน Windows 2008 R2 ฉันจะสร้างการกำหนดค่า RAID ใหม่ ฉันมีไดรฟ์ SCSI 73 GB 6 ตัวในเครื่องและตัวควบคุม IBM ServerRAID 8K อะไรจะเป็นวิธีที่ดีในการตั้งค่าระดับ RAID? ฉันควรจะมีสองสามหรือหนึ่งเขตข้อมูลใน controler ของฉัน? ฉันกำลังพิจารณาที่จะทำหนึ่งในวิธีแก้ปัญหาต่อไปนี้: ใช้ดิสก์ทั้งหมดและสร้างพูล RAID 10 ใช้ดิสก์ 4 ดิสก์สำหรับพูล RAID 1e และใช้เพื่อเก็บข้อมูลฐานข้อมูลและระบบปฏิบัติการและใช้ดิสก์ 2 ดิสก์อื่นในพูล RAID 0 และใช้เพื่อเก็บบันทึกฐานข้อมูล รวมกันบ้าง หน่วยแถบขนาดใหญ่กว่าดีกว่าหรือไม่ เซิร์ฟเวอร์นี้จะเป็นสมาชิกของฐานข้อมูลที่จำลองแบบแล้ว ภารกิจหลักของมันคือการรายงานและดึงข้อมูลโดยมีเอเจนต์การจำลองแบบเท่านั้นที่ทำการเขียน ขนาดของฐานข้อมูลอยู่ที่ประมาณ 90 …

2
เพื่อเพิ่มประสิทธิภาพฐานข้อมูลให้มากที่สุดคำสั่งใดที่ควรรันหลังจากโหลดข้อมูลจำนวนมากลงใน SQL Server 2008 ผ่าน SSIS
ฉันได้เขียนแพ็คเกจ SSIS เพื่อโหลดข้อมูลทดสอบลงในฐานข้อมูลเปล่า ตารางบางตารางมีขนาดใหญ่มาก (ประมาณ 700 ล้านแถว) เมื่อแพคเกจ SSIS เสร็จสิ้นแล้วมีคำสั่งใดบ้างที่ฉันควรเรียกใช้ (ในฐานะผู้ฝึกงาน DBA!) เพื่อเพิ่มประสิทธิภาพของฐานข้อมูล? ตัวอย่างเช่นฉันดำเนินการEXEC sp_updatestatsแต่รายงานว่าไม่จำเป็นต้องมีการอัพเดตดัชนี มีรายการของสิ่งที่ต้องทำเมื่อโหลดข้อมูลจำนวนมากหรือ SQL Server 2008 จัดการสิ่งเหล่านั้นให้คุณหรือไม่?

6
สิ่งที่อาจทำให้หมดเวลาสอบถามแปลกระหว่าง PHP และ MySQL?
ฉันเป็นผู้พัฒนาอาวุโสในแอปพลิเคชัน Software-as-a-Service ที่ลูกค้าหลายรายใช้กัน ซอฟต์แวร์ของเราทำงานบนคลัสเตอร์ของแอพพลิเคชันเซิร์ฟเวอร์ Apache / PHP ขับเคลื่อนโดยแบ็กเอนด์ MySQL เมื่อวันหนึ่งอินสแตนซ์ของซอฟต์แวร์โค้ด PHP ในการค้นหารายชื่อประเภทที่จะหมดเวลาเมื่อลูกค้ามีมากกว่า 29 ประเภท ฉันรู้ว่ามันไม่สมเหตุสมผล ไม่มีอะไรพิเศษเกี่ยวกับหมายเลข 30 ที่จะทำลายสิ่งนี้และลูกค้ารายอื่น ๆ ที่มีมากกว่า 30 หมวดหมู่อย่างไรก็ตามปัญหาคือทำซ้ำได้ 100% เมื่อการติดตั้งครั้งนี้มี 30 หมวดหมู่หรือมากกว่าและหายไปเมื่อมีน้อยกว่า 30 หมวด ตารางในคำถามคือ: CREATE TABLE IF NOT EXISTS `categories` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(64) NOT NULL, `title` varchar(128) NOT NULL, …

2
คำถามเกี่ยวกับ SARGability
ฉันแค่ต้องยืนยันว่าฉันเข้าใจบางอย่างถูกต้อง: ฉันเพิ่งดูคำถาม SO ที่ผู้ใช้โพสต์คำตอบใน Linq เช่น: from p in db.table where p.column.AddMinutes(1) > DateTime.Now select p สำหรับผู้ที่ไม่คุ้นเคยกับ Linq ฉันคาดหวังว่าผลลัพธ์ของคำแถลงนั้น (ไม่ได้ทดสอบอย่างยุติธรรม) จะเป็น: SELECT * FROM table t WHERE DATEADD(min, 1, t.column) >= GETDATE() ฉันโพสต์คำตอบนี้บอกว่าการจัดการ datetime ควรจะอยู่ในตัวแปร (ในกรณีนี้GETDATE()) ดังนั้นในความเป็นจริงคำสั่งควรสะท้อนถึงสิ่งที่ชอบ: SELECT * FROM table t WHERE t.column >= DATEADD(min, -1, GETDATE()) ในการตอบกลับของฉันบิตที่ฉันไม่แน่ใจตอนนี้ถือว่าต่อไปนี้: ดัชนีจะไม่ถูกใช้เนื่องจากการจัดการคอลัมน์ …
11 performance  linq 

2
@table_variable หรือ #temp_table
ฉันมีตัวแปรประเภทตารางที่กำหนดโดยผู้ใช้ขนาดใหญ่ที่มี 129 คอลัมน์ ฉันจะเก็บระเบียนประมาณ 2,000-3,000 รายการในตัวแปรตารางนี้ในแต่ละครั้งและส่งต่อไปยังกระบวนงานและฟังก์ชันที่เก็บไว้ต่าง ๆ เพื่อรับข้อมูลเพิ่มเติมและทำการแก้ไข ข้อมูลเพิ่มเติมและการแก้ไขใหม่เหล่านี้จะถูกเก็บไว้ในตัวแปรตารางใหม่ชนิดเดียวกันและกลับสู่ขั้นตอนการจัดเก็บต้นฉบับผ่านOUTPUTพารามิเตอร์ (นี่เป็นเพราะพารามิเตอร์ประเภทตารางสามารถส่งผ่านเป็นREADONLYเท่านั้น) นี่คือรหัสหลอกของฉัน: SP1 @tmp tableType { INSERT @tmp EXEC SP2 (@tmp) INSERT @tmp EXEC SP3 (@tmp) } ฉันควรใช้@table_variableหรือ#temp_table?

1
noexpand hint สำหรับรุ่นที่ไม่ใช่ enterpise และประสิทธิภาพ
ฉันต้องใช้มุมมองที่จัดทำดัชนีเพื่อให้ได้ประสิทธิภาพ อย่างที่ฉันเห็นจากตารางเปรียบเทียบรุ่นมาตรฐานนี้ไม่รองรับมุมมองที่จัดทำดัชนีไว้ แต่ BOL พูดว่า: สามารถสร้างมุมมองที่จัดทำดัชนีใน SQL Server รุ่นใดก็ได้ ใน SQL Server Enterprise เครื่องมือเพิ่มประสิทธิภาพคิวรีจะพิจารณามุมมองที่จัดทำดัชนีโดยอัตโนมัติ หากต้องการใช้มุมมองที่จัดทำดัชนีไว้ในรุ่นอื่น ๆ ทั้งหมดจะต้องใช้คำใบ้ตาราง NOEXPAND มันจะทำงานได้ดี (ฉันกำลังพูดถึงการแสดง) select * from dbo.OrderTotals with (noexpand, index=IXCU_OrderTotals) บน SQL Server Standard edition และทำงานได้ select * from dbo.OrderTotals ในองค์กรหรือไม่ นี่คือรหัสสำหรับการดู: CREATE VIEW dbo.OrderTotals WITH SCHEMABINDING AS select OrderId = r.OrderId , …

2
ฐานข้อมูลอัปเดตดัชนีในธุรกรรม ณ จุดใด
ฉันพยายามที่จะเข้าใจลำดับของเหตุการณ์ในส่วนแทรกที่ทั้งดัชนีและธุรกรรมเกี่ยวข้องกัน ตัวอย่างเช่นสถานะเอกสารของ Oracle: หากคุณสร้าง [หรือมี] ดัชนีอย่างน้อยหนึ่งรายการก่อนที่จะโหลดข้อมูลฐานข้อมูลจะต้องอัปเดตทุกดัชนีเมื่อแทรกแต่ละแถว แต่จะเกิดอะไรขึ้นถ้าฉันสร้างธุรกรรมแทรกห้าแถวจากนั้นส่งมอบ? มีการอัพเดตดัชนีสำหรับทุกส่วนแทรกหรือเพียงจุดที่กำหนดไว้หรือไม่ ลอจิกบอกฉันว่าพวกเขาจะได้รับการอัปเดต ณ จุดส่งมอบเท่านั้นเนื่องจากดัชนีที่อัพเดตไม่สามารถใช้งานได้จนกว่าจะมีการบันทึกข้อมูลเหล่านั้น แต่นั่นเป็นเรื่องจริงหรือ ถ้าเป็นเช่นนั้นเมื่อฉันมีการแทรก 1m แถวเพื่อประสิทธิภาพที่ดีที่สุดฉันควรทำคอมมิชชันขนาดใหญ่ของแถวทั้งหมดและไม่ใช่ 10 ทรานแซคชันของระเบียน 100k แน่นอนฉันตระหนักว่าความเสี่ยงนี้ย้อนกลับมากขึ้นถ้าแถว 999,999 ล้มเหลว ขอโทษถ้าคำศัพท์ของฉันออกมาเล็กน้อย ฉันไม่ได้เป็น DBA โดยการค้าขาย ฉันไม่ได้สนใจในฐานข้อมูลเฉพาะมากเท่าฐานข้อมูลโดยทั่วไปถึงแม้ว่า Oracle และ Postgres เป็นสิ่งที่ฉันใช้มากที่สุด ฉันค้นหาในหัวข้อนี้ แต่ไม่พบคำตอบที่ชัดเจนจริงๆ

3
การประเมินความผิดปกติที่ไม่ดีทำให้ขาดคุณสมบัติ INSERT จากการบันทึกที่น้อยที่สุด?
ทำไมข้อความที่สองINSERT~ 5x ช้ากว่าประโยคแรก จากจำนวนข้อมูลบันทึกที่สร้างขึ้นฉันคิดว่าข้อมูลที่สองไม่ผ่านการรับรองสำหรับการบันทึกขั้นต่ำ อย่างไรก็ตามเอกสารประกอบในคู่มือประสิทธิภาพการโหลดข้อมูลระบุว่าส่วนแทรกทั้งสองควรสามารถบันทึกได้น้อยที่สุด ดังนั้นหากการบันทึกขั้นต่ำเป็นความแตกต่างของประสิทธิภาพที่สำคัญทำไมจึงเป็นไปได้ว่าการสืบค้นครั้งที่สองไม่มีคุณสมบัติสำหรับการบันทึกขั้นต่ำ สิ่งที่สามารถทำได้เพื่อปรับปรุงสถานการณ์? Query # 1: การแทรกแถว 5 มม. โดยใช้ INSERT ... with (TABLOCK) พิจารณาแบบสอบถามต่อไปนี้ซึ่งแทรกแถว 5MM ลงในกอง แบบสอบถามนี้ดำเนินการใน1 secondและสร้างข้อมูลล็อกธุรกรรมตามการรายงานของ64MBsys.dm_tran_database_transactions CREATE TABLE dbo.minimalLoggingTest (n INT NOT NULL) GO INSERT INTO dbo.minimalLoggingTest WITH (TABLOCK) (n) SELECT n -- Any table/view/sub-query that correctly estimates that it will generate 5MM …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.