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

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

3
วิธีเพิ่มประสิทธิภาพฐานข้อมูลสำหรับ I / O หนักจากการอัปเดต (ซอฟต์แวร์และฮาร์ดแวร์)
สถานการณ์ ฉันมีฐานข้อมูล postgresql 9.2 ซึ่งค่อนข้างมีการปรับปรุงอย่างมากตลอดเวลา ระบบจึงถูก จำกัด ด้วย I / O และตอนนี้ฉันกำลังพิจารณาที่จะอัพเกรดอีกครั้งฉันแค่ต้องการทิศทางที่จะเริ่มปรับปรุง นี่คือภาพว่าสถานการณ์ดู 3 เดือนที่ผ่านมาได้อย่างไร: อย่างที่คุณเห็นอัปเดตบัญชีการปฏิบัติงานสำหรับการใช้งานดิสก์ส่วนใหญ่ นี่เป็นอีกภาพของการมองสถานการณ์ในหน้าต่าง 3 ชั่วโมงที่มีรายละเอียดมากขึ้น: อย่างที่คุณเห็นอัตราการเขียนสูงสุดคือประมาณ 20MB / s ซอฟต์แวร์ เซิร์ฟเวอร์กำลังใช้งาน Ubuntu 12.04 และ postgresql 9.2 ประเภทของการอัปเดตจะมีการอัปเดตขนาดเล็กตามปกติในแต่ละแถวที่ระบุโดย ID UPDATE cars SET price=some_price, updated_at = some_time_stamp WHERE id = some_idเช่น ฉันได้ลบและปรับดัชนีให้มากที่สุดเท่าที่ฉันคิดว่าเป็นไปได้และการกำหนดค่าเซิร์ฟเวอร์ (ทั้งเคอร์เนล linux และ postgres conf) ก็ปรับให้เหมาะสมเช่นกัน …

2
เหตุใด DELETE จึงมีผลกระทบต่อประสิทธิภาพอย่างมาก
ในตอนท้ายคือสคริปต์ทดสอบสำหรับเปรียบเทียบประสิทธิภาพระหว่างตัวแปร @table และตาราง #temp ฉันคิดว่าฉันตั้งค่าไว้อย่างถูกต้อง - การกำหนดเวลาการทำงานนั้นเกิดขึ้นนอกคำสั่ง DELETE / TRUNCATE ผลลัพธ์ที่ฉันได้รับมีดังนี้ (คูณเป็นมิลลิวินาที) @Table Variable #Temp (delete) #Temp (truncate) --------------- -------------- ---------------- 5723 5180 5506 15636 14746 7800 14506 14300 5583 14030 15460 5386 16706 16186 5360 เพียงเพื่อให้แน่ใจว่าฉันมีสติสิ่งนี้แสดงให้เห็นว่า CURRENT_TIMESTAMP (aka GetDate()) ถูกนำมาใช้ในเวลาของคำสั่งไม่ใช่ของแบตช์ดังนั้นจึงไม่มีการโต้ตอบระหว่าง TRUNCATE / DELETE กับSET @StartTime = CURRENT_TIMESTAMPคำสั่ง select current_timestamp …

2
การรวบรวม SQL ส่งผลกระทบต่อประสิทธิภาพการทำงานของ SQL Server อย่างไร
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 7 ปีที่ผ่านมา ฉันสร้างอินสแตนซ์ของ SQL Server 2005 และฉันผ่านการSQLServer:SQL Statistics - SQL Compilations/secวัดของ PerfMon ฉันเห็นว่าค่าเฉลี่ยประมาณ 170 หรือมากกว่านั้น ฉันเปิดตัว SQL Profiler และค้นหา SP: Compile หรือ SQL: Compile events เห็นได้ชัดว่าพวกเขาไม่อยู่ ฉันค้นหาStored Procedure/SP:RecompileและTSQL/SQL:StmtRecompileจัดกิจกรรม จำนวนข้อมูลที่ฉันเห็นใน Profiler แสดงให้เห็นว่าสิ่งเหล่านี้เป็นเหตุการณ์ที่ไม่ถูกต้องที่ต้องดูแม้ว่าฉันจะไม่แน่ใจ ดังนั้นคำถามของฉัน คำตอบสำหรับสิ่งเหล่านี้จะดีมาก ฉันจะดูสิ่งที่รวบรวมใน SQL Server ได้อย่างไร ฉันเลือกการวัดที่ไม่ถูกต้องเพื่อดูหรือไม่ ทั้งใน Perfmon หรือ …

2
ดัชนีเทียบกับพาร์ติชัน
เหตุใดจึงไม่สามารถปรับปรุงประสิทธิภาพด้วยดัชนีเท่านั้นดังนั้นเทคนิคอื่น ๆ เช่นการแบ่งพาร์ติชันตารางจึงมีความจำเป็น? คำถามนั้นเกี่ยวกับประสิทธิภาพแน่นอนว่าพาร์ทิชันที่แตกต่างกันสามารถใส่ลงในพื้นที่ตารางที่แตกต่างกันซึ่งมีเอฟเฟกต์อื่น ๆ ที่ไม่สามารถทำได้ด้วยดัชนี หรือกล่าวอีกนัยหนึ่งคือประสิทธิภาพที่ชาญฉลาด: เป็นไปได้หรือไม่ที่จะปรับปรุงประสิทธิภาพเดียวกันด้วยดัชนีเช่นเดียวกับการแบ่งพาร์ติชันของตาราง?

2
วิธีสร้างดัชนีเพื่อเพิ่มความเร็วการสืบค้น LIKE รวมในนิพจน์
ฉันอาจจะถามคำถามผิดในชื่อเรื่อง นี่คือข้อเท็จจริง: กลุ่มบริการลูกค้าของฉันร้องเรียนเกี่ยวกับเวลาตอบสนองที่ช้าเมื่อทำการค้นหาลูกค้าในอินเทอร์เฟซการจัดการของเว็บไซต์ Django ของเรา เรากำลังใช้ Postgres 8.4.6 ฉันเริ่มบันทึกการสืบค้นที่ช้าและค้นพบผู้ร้ายนี้: SELECT COUNT(*) FROM "auth_user" WHERE UPPER("auth_user"."email"::text) LIKE UPPER(E'%deyk%') การค้นหานี้ใช้เวลานานกว่า 32 วินาทีในการเรียกใช้ นี่คือแผนแบบสอบถามที่จัดทำโดยอธิบาย: QUERY PLAN Aggregate (cost=205171.71..205171.72 rows=1 width=0) -> Seq Scan on auth_user (cost=0.00..205166.46 rows=2096 width=0) Filter: (upper((email)::text) ~~ '%DEYK%'::text) เนื่องจากนี่เป็นแบบสอบถามที่สร้างขึ้นโดย Django ORM จาก Django QuerySet ที่สร้างโดยแอปพลิเคชัน Django Admin ฉันจึงไม่สามารถควบคุมแบบสอบถามได้ ดัชนีดูเหมือนว่าโซลูชันเชิงตรรกะ …


2
LOB_DATA สแกนตารางช้าและคำถาม I / O บางข้อ
ฉันมีตารางที่ค่อนข้างใหญ่โดยหนึ่งในคอลัมน์เป็นข้อมูล XML และขนาดเฉลี่ยของรายการ XML อยู่ที่ประมาณ 15 กิโลไบต์ คอลัมน์อื่น ๆ ทั้งหมดเป็น ints ปกติ bigints GUIDs ฯลฯ หากต้องการมีตัวเลขที่เป็นรูปธรรมสมมติว่าตารางมีหนึ่งล้านแถวและมีขนาดประมาณ 15 GB สิ่งที่ฉันสังเกตคือตารางนี้ช้ามากในการเลือกข้อมูลจากถ้าฉันต้องการเลือกคอลัมน์ทั้งหมด เมื่อฉันทำ SELECT TOP 1000 * FROM TABLE ใช้เวลาประมาณ 20-25 วินาทีในการอ่านข้อมูลจากดิสก์ - แม้ว่าฉันจะไม่ได้กำหนดผลลัพธ์ไว้ก็ตาม ฉันเรียกใช้แบบสอบถามด้วยแคชเย็น (เช่นหลังจากDBCC DROPCLEANBUFFERS) นี่คือผลสถิติ IO: จำนวนการสแกน 1, อ่านโลจิคัล 364, อ่านฟิสิคัล 24 อ่านล่วงหน้าอ่าน 7191, ล็อบโลจิคัลอ่าน 7924, lob ฟิสิคัลอ่าน 1690, lob …

3
ฉันจะวัดประสิทธิภาพของแบบสอบถามได้ดีที่สุดได้อย่างไร
ฉันมี 2 โพรซีเดอร์ที่เก็บซึ่งโพรซีเดอร์ที่เก็บที่สองคือการปรับปรุงของโพรซีเดอร์แรก ฉันพยายามวัดว่าการปรับปรุงนั้นดีเพียงใด 1 / การวัดclock timeไม่ได้เป็นตัวเลือกเนื่องจากฉันได้รับเวลาในการดำเนินการที่แตกต่างกัน ยิ่งแย่ลงบางครั้ง (ไม่ค่อยเกิดขึ้น แต่เกิดขึ้น) เวลาดำเนินการของโพรซีเดอร์ที่เก็บไว้สองครั้งนั้นใหญ่กว่าเวลาดำเนินการของโพรซีเดอร์แรก (ฉันเดาว่าเนื่องจากเวิร์กโหลดเซิร์ฟเวอร์ในขณะนั้น) 2 / Include client statisticsยังให้ผลลัพธ์ที่แตกต่าง 3 / DBCC DROPCLEANBUFFERS, DBCC FREEPROCCACHEเป็นสิ่งที่ดี แต่เป็นเรื่องเดียวกัน ... 4 / SET STATISTICS IO ONอาจเป็นตัวเลือก แต่ฉันจะได้คะแนนโดยรวมได้อย่างไรเนื่องจากฉันมีตารางจำนวนมากที่เกี่ยวข้องกับขั้นตอนการจัดเก็บของฉัน 5 / Include actual execution planอาจเป็นตัวเลือกด้วย ฉันได้รับestimated subtreecost0.3253 สำหรับขั้นตอนการจัดเก็บครั้งแรกและ 0.3079 สำหรับขั้นตอนที่สอง ฉันสามารถพูดได้ว่าขั้นตอนการเก็บที่สองเร็วขึ้น 6% (= 0.3253 / 0.3079) …

5
SQL: INSERT มีอะไรช้าลงถ้าไม่ใช่ CPU หรือ IO
เรามีฐานข้อมูลสำหรับผลิตภัณฑ์ที่เขียนหนัก เราเพิ่งซื้อเครื่องเซิร์ฟเวอร์ใหม่พร้อม SSD เพื่อช่วย ด้วยความประหลาดใจของเราการแทรกไม่เร็วกว่าบนเครื่องเก่าของเราที่มีการจัดเก็บช้ากว่ามาก ในระหว่างการเปรียบเทียบเราสังเกตเห็นว่าอัตรา IO ที่แสดงโดยกระบวนการ SQL Server นั้นต่ำมาก ตัวอย่างเช่นฉันรันสคริปต์ที่พบในหน้านี้ยกเว้นว่าฉันได้เพิ่ม BEGIN TRAN และ COMMIT รอบลูป ที่ดีที่สุดฉันจะเห็นการใช้งานดิสก์ถึง 7Mb / s ในขณะที่ CPU แทบจะไม่ได้สัมผัส 5% เซิร์ฟเวอร์มีการติดตั้ง 64Gb และใช้ 10 เวลาการทำงานทั้งหมดคือ 2 นาที 15 วินาทีสำหรับการโทรครั้งแรกจนถึงประมาณ 1 นาทีสำหรับการโทรครั้งต่อไป ฐานข้อมูลเป็นการกู้คืนอย่างง่ายและไม่ได้ใช้งานในระหว่างการทดสอบ ฉันวางโต๊ะระหว่างการโทรแต่ละครั้ง ทำไมสคริปต์ง่าย ๆ นี้ถึงช้าจัง ฮาร์ดแวร์แทบจะไม่มีการใช้เลย ทั้งเครื่องมือการเปรียบเทียบดิสก์เฉพาะและ SQLIO ระบุว่า SSD ทำงานอย่างถูกต้องด้วยความเร็วสูงกว่า 500Mb / s …

3
“ WHERE 1 = 1” มักส่งผลกระทบต่อประสิทธิภาพการค้นหาหรือไม่
ฉันเพิ่งเห็นคำถาม"ที่ 1 = 1 คำสั่ง" ; สร้าง SQL ฉันได้ใช้บ่อยในการสร้าง SQL แบบไดนามิกในความพยายามที่จะเขียนรหัสสะอาด (จากมุมมองของภาษาโฮสต์) โดยทั่วไปแล้วการเพิ่มค่าสถานะ SQL จะส่งผลเสียต่อประสิทธิภาพการค้นหาหรือไม่ ฉันไม่ได้มองหาคำตอบเกี่ยวกับระบบฐานข้อมูลที่เฉพาะเจาะจง (เพราะฉันได้ใช้มันใน DB2, SQL Server, MS-Access และ mysql) - เว้นแต่ว่ามันจะเป็นไปไม่ได้ที่จะตอบโดยไม่เจาะจง

9
เครื่องมือในการตรวจสอบประสิทธิภาพฐานข้อมูล Oracle ใน Standard Edition [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับผู้ดูแลฐานข้อมูล Exchange Exchange ปิดให้บริการใน2 ปีที่ผ่านมา นี่คือสิ่งที่ฉันกำลังมองหา: ใช้งานได้กับ Standard Edition เช่นไม่มีชุดวินิจฉัย ให้ข้อมูลประสิทธิภาพทั้งในปัจจุบันและในอดีต ภาพที่ดีสำหรับการมองเห็นแนวโน้มและการนำเสนอที่ง่ายต่อการจัดการ หากคุณใช้เครื่องมือนี้ฉันจะสนใจในข้อดีและข้อเสียที่คุณค้นพบ ฉันสามารถสร้างรายการขึ้นมาได้ แต่ความเข้าใจที่ลึกซึ้งเกี่ยวกับการใช้เครื่องมือมีค่ามากกว่า

4
SSD ที่มี Oracle
เราได้พิจารณาถึงการใช้ SSD กับ Oracle เพื่อเร่งความเร็วในการโยกย้ายการทดสอบของเรา ขณะนี้ใช้เวลา 12-18 ชั่วโมงในการดำเนินการย้ายข้อมูลให้เสร็จสิ้นโดยขึ้นอยู่กับปริมาณของข้อมูล เรามีกล่องลินุกซ์ราคาถูกจำนวนหนึ่งที่เราใช้สำหรับการรันและวิเคราะห์ต่างๆ ราคาของ SSD โดยตรงจาก Dell นั้นเป็นสิ่งต้องห้าม ฉันสงสัยว่าใครมีประสบการณ์ในการใช้ SSD ของผู้บริโภค (เช่น Crucial / Micron) ฉันรู้ว่าการสนับสนุน TRIM จะเป็นปัญหาใน Linux (โดยใช้ Centos) มีใครใช้มันใน Windows 7 เพื่อตอบโต้เรื่องนี้หรือไม่?

4
เมื่อใช้ ORM สิ่งที่ต้องระวังในการออกแบบฐานข้อมูลของคุณคืออะไร
Gotchas ออกแบบฐานข้อมูลอะไรบ้างที่ต้องระวังเมื่อคุณรู้ว่าฐานข้อมูลจะถูกเข้าถึงโดยใช้Wikipedia Object Relational Mapper (ORM) ? ดูที่ Entity Framework NHibernate หรือ LLBLGenPro ตัวอย่างเช่นฉันจะบันทึกข้อ จำกัด พารามิเตอร์ 2100 ในการเรียก RPC ของ SqlServer ปัญหานี้เป็นปัญหาเมื่อใช้ LLBLGen และเข้าร่วมเมื่อตารางคีย์หลักสารประกอบถูกนำมาใช้ดูบทความ MSDN สำหรับคีย์สารประกอบ
19 performance  orm 

2
เลื่อนระดับแผนแบบสอบถามของการเรียกใช้ฟังก์ชันที่เขียนใน plpgsql
มันเป็นไปได้เมื่อใช้pgadminหรือplsqlจะได้รับถือของแผนแบบสอบถามสำหรับคำสั่ง SQL ดำเนินการภายในU ser d efined ฉตื่นเต้น (UDF) EXPLAINโดยใช้ ดังนั้นฉันจะได้รับแผนแบบสอบถามสำหรับการร้องขอ UDF โดยเฉพาะได้อย่างไร ฉันเห็น UDF ที่แยกออกไปเป็นการดำเนินการเดียวF()ใน pgadmin ฉันดูเอกสารแล้ว แต่หาอะไรไม่เจอ ขณะนี้ฉันกำลังดึงคำแถลงและเรียกใช้ด้วยตนเอง แต่สิ่งนี้จะไม่ถูกตัดออกไปสำหรับข้อความค้นหาขนาดใหญ่ ตัวอย่างเช่นพิจารณา UDF ด้านล่าง UDF นี้แม้ว่ามันจะมีความสามารถในการพิมพ์สตริงการสืบค้นของมันจะไม่ทำงานกับการคัดลอกวางเพราะมันมีตารางชั่วคราวที่สร้างขึ้นในท้องถิ่นซึ่งไม่มีอยู่เมื่อคุณวางและดำเนินการ CREATE OR REPLACE FUNCTION get_paginated_search_results( forum_id_ INTEGER, query_ CHARACTER VARYING, from_date_ TIMESTAMP WITHOUT TIME ZONE DEFAULT NULL, to_date_ TIMESTAMP WITHOUT TIME ZONE DEFAULT NULL, in_categories_ …

2
การเลือกหลายคอลัมน์ผ่านแบบสอบถามย่อย
ฉันพยายามเลือกคอลัมน์ 2 จากแบบสอบถามย่อยในแบบสอบถามต่อไปนี้ แต่ไม่สามารถทำได้ พยายามสร้างตารางนามแฝง แต่ยังไม่สามารถหาได้ SELECT DISTINCT petid, userid, (SELECT MAX(comDate) FROM comments WHERE petid=pet.id) AS lastComDate, (SELECT userid FROM comments WHERE petid=pet.id ORDER BY id DESC LIMIT 1) AS lastPosterID FROM pet LEFT JOIN comments ON pet.id = comments.petid WHERE userid='ABC' AND deviceID!='ABC' AND comDate>=DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 2 MONTH); …

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