Identify the root cause of performance issues at a precise point in th การแปล - Identify the root cause of performance issues at a precise point in th ไทย วิธีการพูด

Identify the root cause of performa

Identify the root cause of performance issues at a precise point in the past—even when the sessions have disconnected.

In my previous two articles on the topic of performance tuning (bit.ly/SEzR6t and bit.ly/U7U5IJ), you learned how to identify the cause of performance bottlenecks occurring in real time and view the summary of what happened in the past. Although these processes provide information to help resolve performance issues in many cases, there are times when you would like to know precisely what happened at a specific point in the past. In this article, you will learn how to identify the precise sequence of events in the past in a historical—not current—session.

To run the examples in this article, execute the setup.sql script. The script creates a user called ARUP and creates three tables: TEST1, TEST2, and TEST3. In the very rare event that a user called ARUP already exists, modify the script to create another user with a different name and replace all occurrences of ARUP with that name. The sample database created by setup.sql will take up less than 200 MB of space in your database.

After running the setup.sql script, open four SQL*Plus sessions, connected as ARUP. In three of these sessions, execute the test1.sql, test2.sql, and upd1.sql scripts, respectively. Here is an example of one session running upd1.sql on a UNIX-based system:

# sqlplus arup/arup
SQL> @upd1.sql

In the fourth session, execute upd1.sql again. This last session will hang, because the third session has already executed upd1.sql, which updates one row of the TEST1 table but does not commit and therefore keeps the row locked. The fourth session executes the same script, which attempts to update the same row. But the row is locked by the third session, so the fourth session waits until the lock is gone and the row is available for locking.

The test1.sql and test2.sql scripts are designed to consume significant amounts of CPU, so the first two sessions will be slow due to CPU contention. These sessions will run for a very long time.

After all the sessions have waited for about 10 minutes, stop the execution in sessions 1 and 2 by pressing Control-C to exit each SQL*Plus session. In session 3, enter commit and press Enter. This will release the lock on the row, and you will see session 4 show “1 row updated.” Exit SQL*Plus sessions 3 and 4. Now all the sessions connected as ARUP are closed—and history.
0/5000
จาก: -
เป็น: -
ผลลัพธ์ (ไทย) 1: [สำเนา]
คัดลอก!
ระบุสาเหตุรากของปัญหาประสิทธิภาพที่แม่นยำในอดีต — แม้เมื่อรอบเวลาที่ต้องการเชื่อมต่อในก่อนหน้านี้สองบทความของฉันในหัวข้อประสิทธิภาพการปรับแต่ง (bit.ly/SEzR6t และ bit.ly/U7U5IJ), คุณได้เรียนรู้วิธีการระบุสาเหตุของปัญหาคอขวดของประสิทธิภาพที่เกิดขึ้นในเวลาจริง และดูสรุปของสิ่งที่เกิดขึ้นในอดีต แม้ว่ากระบวนการเหล่านี้ให้ข้อมูลเพื่อช่วยแก้ไขปัญหาประสิทธิภาพการทำงานในหลายกรณี มีบางครั้งที่คุณต้องการรู้อย่างแม่นยำสิ่งที่เกิดขึ้นที่จุดเฉพาะในอดีต ในบทความนี้ คุณจะได้เรียนรู้วิธีระบุลำดับความแม่นยำของเหตุการณ์ในอดีตในการประวัติศาสตร์ — ไม่ปัจจุบัน — เซสชันเรียกใช้ตัวอย่างในบทความนี้ ดำเนินการสคริปต์ setup.sql สคริปต์สร้างผู้ใช้เรียกว่าอารัป และสร้างตารางที่สาม: TEST1, TEST2 และ TEST3 ในเหตุการณ์ยากมากที่ผู้ใช้เรียกว่าอารัปแล้วมีอยู่ ปรับเปลี่ยนสคริปต์เพื่อสร้างผู้ใช้อื่น โดยใช้ชื่ออื่น และแทนอารัปทั้งหมดพบชื่อ ฐานข้อมูลตัวอย่างที่สร้าง โดย setup.sql จะใช้เวลาน้อยกว่า 200 เมกะไบต์ของเนื้อที่ว่างในฐานข้อมูลของคุณหลังจากรันสคริปต์ setup.sql เปิดสี่ SQL * Plus เซสชัน การเชื่อมต่อเป็นอารัป ในสามของเซสชันเหล่านี้ ดำเนินการ test1.sql, test2.sql และ upd1.sql สคริปต์ ตามลำดับ นี่คือตัวอย่างของเซสชันที่เรียกใช้ upd1.sql บนระบบที่ใช้ UNIX: อารัป/อารัป sqlplus #SQL > @upd1.sql ในเซสชันสี่ ดำเนินการ upd1.sql อีกครั้ง เซสชันล่าสุดนี้จะแขวน เนื่องจากรอบที่สามแล้วปฏิบัติการ upd1.sql ซึ่งปรับปรุงหนึ่งแถวของตาราง TEST1 แต่ไม่ยอมรับ และดังนั้น ทำให้แถวที่ถูกล็อก เซสชันสี่ดำเนินการสคริปต์เดียวกัน ที่พยายามที่จะปรับปรุงแถวเดียวกัน แต่แถวถูกล็อก โดยรอบสาม เพื่อให้เซสชันสี่รอจนกว่าหายล็อค และแถวสำหรับการล็อกสคริปต์ test1.sql และ test2.sql ออกแบบมาใช้จำนวนมาก CPU เพื่อให้เซสชันสองครั้งแรกจะช้าเนื่องจากข้อขัดแย้งใน CPU หลักสูตรนี้จะทำงานเป็นเวลานานมากหลังจากเซสชันทั้งหมดต้องรอประมาณ 10 นาที หยุดการดำเนินการในเซสชันที่ 1 และ 2 โดยการกด C ควบคุมออกจากแต่ละ SQL * Plus เซสชัน ในภาคที่ 3 ป้อนยืนยัน และกด Enter นี้จะปลดล็อกแถว และคุณจะเห็นเซสชัน 4 แสดง "1 แถวให้ปรับปรุง" ออกจาก SQL * Plus ช่วง 3 และ 4 ตอนนี้ปิดเซสชันทั้งหมดที่เชื่อมต่อเป็นอารัป — และประวัติ
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 2:[สำเนา]
คัดลอก!
ระบุสาเหตุของปัญหาประสิทธิภาพการทำงานที่จุดที่แม่นยำในอดีตแม้กระทั่งเมื่อการประชุมที่มีการตัดการเชื่อมต่อ.

ในสองบทความก่อนหน้าของฉันในเรื่องของการปรับแต่งประสิทธิภาพ (bit.ly/SEzR6t และ bit.ly/U7U5IJ) ที่คุณได้เรียนรู้วิธีการ เพื่อระบุสาเหตุของ bottlenecks ประสิทธิภาพที่เกิดขึ้นในเวลาจริงและดูบทสรุปของสิ่งที่เกิดขึ้นในอดีตที่ผ่านมา แม้ว่ากระบวนการเหล่านี้ให้ข้อมูลที่จะช่วยแก้ไขปัญหาประสิทธิภาพการทำงานในหลายกรณีมีบางครั้งเมื่อคุณต้องการที่จะรู้ว่าสิ่งที่เกิดขึ้นที่จุดเฉพาะในอดีตที่ผ่านมา ในบทความนี้คุณจะได้เรียนรู้วิธีการระบุลำดับที่แม่นยำของเหตุการณ์ในอดีตที่ผ่านมาในประวัติศาสตร์ไม่ได้ในปัจจุบันเซสชั่น.

เมื่อต้องการเรียกใช้ตัวอย่างในบทความนี้, รันสคริปต์ setup.sql สคริปต์สร้างผู้ใช้ที่เรียกว่า ARUP และสร้างสามตาราง: TEST1, TEST2 และ test3 ในกรณีที่หายากมากที่ผู้ใช้เรียกว่า ARUP อยู่แล้วแก้ไขสคริปต์เพื่อสร้างผู้ใช้คนอื่นที่มีชื่อที่แตกต่างกันและแทนที่เกิดขึ้นทั้งหมดของ ARUP ที่มีชื่อนั้น ฐานข้อมูลตัวอย่างที่สร้างขึ้นโดย setup.sql จะใช้เวลาน้อยกว่า 200 MB พื้นที่ในฐานข้อมูลของคุณ.

หลังจากใช้สคริปต์ setup.sql เปิดสี่ SQL * Plus เซสชันเชื่อมต่อเป็น ARUP ในสามของการประชุมเหล่านี้ดำเนินการ test1.sql, test2.sql และ upd1.sql สคริปต์ตามลำดับ นี่คือตัวอย่างของเซสชั่นหนึ่งที่ทำงาน upd1.sql บนระบบยูนิกซ์ตามนี้:

# sqlplus Arup / Arup
SQL> @ upd1.sql ในเซสชั่นที่สี่ดำเนิน upd1.sql อีกครั้ง ช่วงสุดท้ายนี้จะแขวนเพราะเซสชั่นที่สามได้ดำเนินการอยู่แล้ว upd1.sql ที่ปรับปรุงหนึ่งแถวของตาราง TEST1 แต่ไม่ได้กระทำและดังนั้นจึงช่วยให้แถวล็อค เซสชั่นที่สี่รันสคริปต์เดียวกันซึ่งพยายามที่จะปรับปรุงแถวเดียวกัน แต่แถวที่ถูกล็อกโดยเซสชั่นที่สามเพื่อรอเซสชั่นที่สี่จนกว่าล็อคจะหายไปและแถวที่สามารถใช้ได้สำหรับล็อค. test1.sql และสคริปต์ test2.sql ถูกออกแบบมาเพื่อใช้จำนวนเงินที่สำคัญของ CPU เพื่อให้สองคนแรก การประชุมจะช้าเนื่องจากการต่อสู้ของ CPU ช่วงนี้จะทำงานเป็นเวลานานมาก. หลังจากการประชุมทั้งหมดได้รอประมาณ 10 นาทีหยุดการดำเนินการในการประชุม 1 และ 2 โดยการกดปุ่มควบคุม-C เพื่อออกจากแต่ละ SQL * Plus เซสชั่น ในช่วง 3 ป้อนกระทำและกด Enter นี้จะปลดล็อคในแถวและคุณจะเห็นเซสชั่นที่ 4 แสดง "1 แถวการปรับปรุง." ออก SQL * Plus เซสชันที่ 3 และ 4 ตอนนี้สิ่งที่การประชุมเชื่อมต่อเป็น ARUP จะปิดและประวัติศาสตร์





การแปล กรุณารอสักครู่..
 
ภาษาอื่น ๆ
การสนับสนุนเครื่องมือแปลภาษา: กรีก, กันนาดา, กาลิเชียน, คลิงออน, คอร์สิกา, คาซัค, คาตาลัน, คินยารวันดา, คีร์กิซ, คุชราต, จอร์เจีย, จีน, จีนดั้งเดิม, ชวา, ชิเชวา, ซามัว, ซีบัวโน, ซุนดา, ซูลู, ญี่ปุ่น, ดัตช์, ตรวจหาภาษา, ตุรกี, ทมิฬ, ทาจิก, ทาทาร์, นอร์เวย์, บอสเนีย, บัลแกเรีย, บาสก์, ปัญจาป, ฝรั่งเศส, พาชตู, ฟริเชียน, ฟินแลนด์, ฟิลิปปินส์, ภาษาอินโดนีเซี, มองโกเลีย, มัลทีส, มาซีโดเนีย, มาราฐี, มาลากาซี, มาลายาลัม, มาเลย์, ม้ง, ยิดดิช, ยูเครน, รัสเซีย, ละติน, ลักเซมเบิร์ก, ลัตเวีย, ลาว, ลิทัวเนีย, สวาฮิลี, สวีเดน, สิงหล, สินธี, สเปน, สโลวัก, สโลวีเนีย, อังกฤษ, อัมฮาริก, อาร์เซอร์ไบจัน, อาร์เมเนีย, อาหรับ, อิกโบ, อิตาลี, อุยกูร์, อุสเบกิสถาน, อูรดู, ฮังการี, ฮัวซา, ฮาวาย, ฮินดี, ฮีบรู, เกลิกสกอต, เกาหลี, เขมร, เคิร์ด, เช็ก, เซอร์เบียน, เซโซโท, เดนมาร์ก, เตลูกู, เติร์กเมน, เนปาล, เบงกอล, เบลารุส, เปอร์เซีย, เมารี, เมียนมา (พม่า), เยอรมัน, เวลส์, เวียดนาม, เอสเปอแรนโต, เอสโทเนีย, เฮติครีโอล, แอฟริกา, แอลเบเนีย, โคซา, โครเอเชีย, โชนา, โซมาลี, โปรตุเกส, โปแลนด์, โยรูบา, โรมาเนีย, โอเดีย (โอริยา), ไทย, ไอซ์แลนด์, ไอร์แลนด์, การแปลภาษา.

Copyright ©2025 I Love Translation. All reserved.

E-mail: