2015-02-28 19 views
5

Gần đây tôi đã được giới thiệu về tính năng mới của MySQL: performance_schema, và nó thật tuyệt vời. Đặc biệt khi nó được kết hợp với Performance Reports của MySQL Workbench. Tôi thấy phần High Cost SQL Statements khá hữu ích và thiết thực. Chỉ có một nhược điểm đối với nó, cột SQL chứa câu lệnh SQL được thi hành được cắt ngắn trong các trường hợp dài.Ngăn chặn các câu lệnh SQL khỏi bị cắt bớt bởi Workbench của MySQL trong phần `Báo cáo hiệu suất '

Tôi tin rằng nó bị cắt bớt bởi Workbench chứ không phải là performance_schema nhưng tôi không có bằng chứng vững chắc để chứng minh điều đó. Có ai biết làm thế nào để có phiên bản hoàn chỉnh của SQL?

+0

Bảng PS nào? –

+0

Tôi không chắc chắn trong đó (các) bảng dữ liệu 'Báo cáo hiệu suất 'được lưu trữ. Tôi đã xem xét các bảng và có một vài trong số chúng với trường 'SQL_TEXT' và nó thuộc loại' LONGTEXT' trong tất cả chúng là đủ lớn để giữ bất kỳ câu lệnh nào (4G). Đó là lý do tại sao tôi tin rằng các câu lệnh được cắt ngắn bởi Workbench chứ không phải chính máy chủ MySQL. – Mehran

Trả lời

7

Tôi đã tự tìm ra.

Thông tin được trình bày trong Bảng điều khiển của MySQL Workbench được trích xuất bằng một loạt các khung nhìn được xác định trong cơ sở dữ liệu sys. Các chế độ xem được đề cập được tạo dựa trên các bảng được tìm thấy trong cơ sở dữ liệu performance_schema. Trường chịu trách nhiệm giữ các câu lệnh SQL nằm trong chế độ xem sys.x$statement_analysis đang dùng nó từ performance_schema.events_statements_summary_by_digest bảng lần lượt. Mặc dù trường này được định nghĩa là LONGTEXT và có thể chứa nhiều ký tự dưới dạng 4G, nhưng các câu lệnh SQL được cắt ngắn khi chúng được chèn vào.

Độ dài tối đa của các ký tự sẽ được chèn vào DIGEST_TEXT được kiểm soát bởi cấu hình max_digest_length. Giá trị mặc định của nó được đặt thành và có thể tăng lên đến 1048576. Nhưng hãy nhớ rằng cấu hình này có thể được đặt trên Phiên bản MySQL lớn hơn 5.6.24 chỉ !!

+0

Tuyệt vời! Điều đó làm cho báo cáo perf hữu ích! tôi đã thêm các thiết lập thoses để my.ini (giá trị mặc định x 10): 'max_digest_length = 10240 performance_schema_max_sql_text_length = 10240 performance_schema_max_digest_length = 10240' –

+1

Lưu ý rằng tính đến 5.6.26' performance_schema_max_digest_length' nay được sử dụng thay vì 'max_digest_length'. Câu trả lời tuyệt vời mặc dù khi tôi đặt ra để tìm ra làm thế nào để làm cho các chuỗi tuyên bố có thể đọc được tôi đã không mong đợi để tìm một câu trả lời. Tôi thậm chí không thực sự những gì để google. thx –

+0

Nếu có ai đang sử dụng MySQL Workbench để xem dữ liệu lược đồ hiệu suất như tôi, thì bạn cũng sẽ cần phải đi đến 'Chỉnh sửa> Tùy chọn> Thực thi SQL' và đặt' Max. Độ dài trường giá trị để hiển thị' với cùng một giá trị tối đa, các câu lệnh khác sẽ bị cắt bớt (hiển thị đầu và cuối nhưng với dấu ba chấm ở giữa) –

Các vấn đề liên quan