Tôi đã tìm thấy một số tài nguyên nói về điều chỉnh máy chủ cơ sở dữ liệu, nhưng tôi không tìm thấy nhiều điều chỉnh về các truy vấn riêng lẻ. Ví dụ, trong Oracle, tôi có thể thử thêm gợi ý để bỏ qua chỉ mục hoặc sử dụng sắp xếp hợp nhất so với tham gia tương quan, nhưng tôi không thể tìm thấy nhiều điều chỉnh Postgres ngoài using explicit joins và đề xuất khi bulk loading tables.Hướng dẫn điều chỉnh truy vấn PostgreSQL?
Có bất kỳ hướng dẫn nào tồn tại để tôi có thể tập trung vào điều chỉnh các truy vấn chạy và/hoặc hoạt động kém nhất, hy vọng không ảnh hưởng xấu đến các truy vấn hiện đang hoạt động tốt không?
Tôi thậm chí còn rất vui khi tìm thấy thứ gì đó so sánh các loại truy vấn nhất định được thực hiện so với các cơ sở dữ liệu khác, vì vậy tôi có một đầu mối tốt hơn về những thứ cần tránh.
cập nhật:
tôi nên đã đề cập, tôi mất tất cả các lớp DBA Oracle cùng với mô hình dữ liệu và SQL chỉnh các lớp học của họ trở lại trong những ngày 8I ... vì vậy tôi biết về 'GIẢI THÍCH' , nhưng đó là nhiều hơn để cho bạn biết những gì đang xảy ra với truy vấn, không nhất thiết phải làm thế nào để làm cho nó tốt hơn. (ví dụ, là 'trong khi var = 1 hoặc var = 2' và 'trong khi var in (1,2)' được coi là giống nhau khi tạo một kế hoạch thực hiện? Điều gì sẽ xảy ra nếu tôi thực hiện nó với 10 hoán vị? Có cách nào để lập kế hoạch để tối ưu hóa để bắt đầu nhanh nhất và kết thúc nhanh nhất? Tôi có thể chạy loại 'gotchas' nào khi chuyển từ mySQL, Oracle hoặc một số RDBMS khác?)
Tôi có thể viết bất kỳ hàng tá truy vấn phức tạp nếu không phải hàng trăm cách, và tôi hy vọng sẽ không phải thử tất cả chúng và tìm ra cái nào hoạt động tốt nhất thông qua thử và sai. Tôi đã thấy rằng 'số lượng SELECT (*)' sẽ không sử dụng chỉ mục, nhưng 'số lượng SELECT (primary_key)' sẽ ... có thể là một loại tài liệu 'PostgreSQL cho người dùng SQL có kinh nghiệm' đã giải thích các loại truy vấn tránh, và cách tốt nhất để viết lại chúng, hoặc cách để người lập kế hoạch xử lý chúng tốt hơn.
cập nhật 2:
Tôi tìm thấy một Comparison of different SQL Implementations trong đó bao gồm PostgreSQL, DB2, MS-SQL, MySQL, Oracle và Informix, và giải thích nếu, như thế nào, và gotchas vào những thứ bạn có thể thử để làm, và phần tham chiếu của anh ta được liên kết với Oracle/SQL Server/DB2/Mckoi /MySQL Database Equivalents (đó là tiêu đề của nó gợi ý) và cho wikibook SQL Dialects Reference bao gồm mọi thứ mà mọi người đóng góp (bao gồm một số DB2, SQLite, mySQL, PostgreSQL, Firebird, Vituoso, Oracle, MS-SQL, Ingres và Linter) .
Điều chỉnh truy vấn không hoàn toàn, nhưng đối với những người đến từ mysql, điều này có thể hữu ích: http://www.wikivs.com/wiki/MySQL_vs_PostgreSQL – Joe
Và đối với những người đến từ Oracle: http: //www.cs.cmu .edu/~ pmerson/docs/OracleToPostgres.pdf; và nói chung 'gotchas' cho postgres: http://sql-info.de/postgresql/postgres-gotchas.html – Joe
Điều này có thể hữu ích cho bạn điều chỉnh postgres: http://tekadempiere.blogspot.ae/2014/09/ tuning-postgresql-for-better-performance.html – Sajeev