데이터베이스 성능 조정에 어떤 리소스가 있습니까? [닫은]
주요 엔진의 데이터베이스 튜닝을 이해하고 해당 영역에 대한 지식을 발전시키는 데 도움이되는 유용한 리소스는 무엇입니까?
이 질문의 아이디어는 항상 존재하는 자원을 흘려서 사람들이 동료 승인을받은 좋은 자원에 대한 "원 스톱"지식 상점을 가질 수 있도록하는 것입니다.
일반 SQL
- 책 : SQL 성능 조정
- 책 : SQL 튜닝
- 책 : SQL의 예술
- 책 : SQL 애플리케이션 리팩토링
- 서적 : 데이터베이스 튜닝 : 원칙, 실험 및 문제 해결 기술
- 색인을 사용하십시오, Luke! -개발자를위한 데이터베이스 성능 안내서
PostgreSQL ( wiki ) ( PGsearch )
MySQL
신탁
- StackOverflow에서 Oracle 튜닝 질문을하는 방법
- 쿼리의 Explain Plan을 어떻게 해석합니까?
- Oracle Advanced Tuning 스크립트
- Oracle 데이터베이스 성능 조정 안내서
- 톰에게 물어보기
- Oracle 데이터베이스 SQL 참조
- 서적 : Oracle 성능 이해
- 서적 : Oracle 성능 최적화
- 책 : Oracle 성능 문제 해결
- 책 : 비용 기반 Oracle Fundamentals
MS SQL 서버
- SQL Server 성능
- 전자 책 : 고성능 SQL Server
- 질문 : 최고의 SQL Server 성능 최적화 기술은 무엇입니까?
- 브렌트 오자 퍼프 튜닝 페이지
- SqlServerPedia의 성능 조정 페이지
- 서적 : Sql Server 2008 Internals
- SQL 프로파일 러를 사용하여 느리게 실행되는 쿼리를 식별하는 방법
Sybase SQL Anywhere
JDBC
Oracle's very own Tom Kyte has a fantastic repository on every type of performance problem imaginable on http://asktom.oracle.com. He usually takes the time to recreate specific problems and gives very detailed explanations.
This guy's answer to a not-the-same-inquiry is probably a good start.
And something for PostgreSQL: "Performance Optimization" at the official wiki.
If you are using an Oracle database, this guide may also help. http://download.oracle.com/docs/cd/B28359_01/server.111/b28274/toc.htm
For MySQL, the performance tuning 'bible' is High Performance MySQL
Quick PostgreSQL Optimization (query optimizing)
Short read, explains a lot of things well and 'works' a real example which is nice for those of us that learn better that way.
After seeing the wiki link to PostgreSQL, figured I'd edit this post with links for mysql/oracle docs, not really an optimization guides specifically but both are good resources, especially the mysql one. For optimization and any other tuning features.
SO has a good one here: How do you interpret a query’s explain plan?
A lot of good MySQL specific tips can be found at http://www.mysqlperformanceblog.com/
I would add that besides having your database theoretically tuned, you should profile your application using a profiler that tracks SQL calls.
Despite your best intentions, a few bad calls will sneak into your application and will often cause 90% of your performance-related problems.
If you are looking for SQL Server specific Performance tuning references there are an absolute shed load of quality resources available online, ranging from white papers on implementing specific technologies such as partitioning, to excellent Blogs that detail step by step instruction on how to performance tune a sql server platform.
Shameless plug follows: You can start you research by reviewing the performance tuning area of my personal Blog, or for any specific SQL Server requirements/issues feel free to fire me an email.
SQL Server Performance Decent site for MSSQL specific info.
- Book: Troubleshooting Oracle Performance (Antognini Christian)
How to Identify Slow Running Queries with SQL Profiler is a good tutorial on how to go about identifying slow running queries. This will allow one to focus their attention where it is most needed.
http://explain.depesz.com/
- helps you interpret PostgreSQL's EXPLAIN ANALYZE output.
The whole Performance Tips chapter in the PostgreSQL docs is worth reading.
"SQL Performance Tuning" http://books.google.com/books?id=3H9CC54qYeEC&dq=sql+performance+tuning&printsec=frontcover&source=bn&hl=en&ei=1dDoSYmjMOrlnQfX-bSYBw&sa=X&oi=book_result&ct=result&resnum=4 covers most of the major DBMS -- how to write high performing cross platform SQL queries, etc.
http://www.javaperformancetuning.com/tips/jdbc.shtml
http://www.google.com/search?q=database+performance+tuning
Here is another highly-regarded book that is platform-neutral:
Dan Tow's SQL Tuning: Generating Optimal Execution Plans
Contains some specific examples for Oracle, MS SQL, and IBM DB2, but the techniques involved should apply to other platforms, too.
For SQL Server, I primarily use:
Xaprb is a must-read blog for MySQL DBAs. The author has written a book on high-performance MySQL
For the happy few working with Sybase SQL Anywhere I can only recommend Breck Carter's blog and his SQL Anywhere Studio 9 Developer's Guide
I was pretty happy when I saw this way of quickly seeing what happened with a SQL statement you are tuning under Oracle. Change the first SQL statement below to your SELECT statement and keep that hint in there.
SELECT /*+ GATHER_PLAN_STATISTICS */ * FROM DUAL;
SELECT * FROM TABLE(dbms_xplan.display_cursor( NULL, NULL, 'RUNSTATS_LAST'))
;
PLAN_TABLE_OUTPUT
-----------------------------------------------------
SQL_ID 5z36y0tq909a8, child number 0
-------------------------------------
SELECT /*+ GATHER_PLAN_STATISTICS */ * FROM DUAL
Plan hash value: 272002086
---------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | Reads |
---------------------------------------------------------------------------------------------
| 1 | TABLE ACCESS FULL| DUAL | 1 | 1 | 1 |00:00:00.02 | 3 | 2 |
---------------------------------------------------------------------------------------------
12 rows selected.
Where:
- E-Rows is estimated rows.
- A-Rows is actual rows.
- A-Time is actual time.
- Buffers is actual buffers.
Where the estimated plan varies from the actual execution by orders of magnitude, you know you have problems.
For people working with Oracle I recommend this link.............
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/toc.htm
From my experiences with Oracle database development, I have found that building up a knowledge of how to use SQL, how it works and knowing what is available (supplied functions, clauses that you didn't know existed or enhanced from the last version) means I spend a lot less time having to tune sql.
I'd start out by understanding how the database works at a fundamental level. How is data stored on disk, what does creating an index do, how does query plan optimization work, how are plans cached, when to cached plans expire.
If you can commit all that to memory, most of the advice about tuning seems obvious.
Here's a great book for MSSQL
For Oracle, Cost-Based Oracle: Fundamentals by Jonathan Lewis.
Sometimes you need to know to how to fix the problem once it is identified. This will show ways to replace a badly performing cursor with a set-based operation: http://wiki.lessthandot.com/index.php/Cursors_and_How_to_Avoid_Them
It was specific to SQL Server but many of the techniques might transalte to other dbs as well.
For Microsoft SQL, I'd recommend the books by Kalen Delaney (et al) called "Inside SQL Server". They offer a good insight into the internals of SQL Server, thus allowing readers to educate themselves on why particular statements might be faster than others.
Inside SQL Server 7.0
Inside SQL Server 2000
Inside Microsoft SQL Server 2005
Microsoft SQL Server 2008 Internals
There's also a book dedicated to performance tuning of SQL Server 2008 queries: SQL Server Performance Tuning Distilled
I also like the blogs by Paul Randal and Kimberly Tripp on SQLSkills.com. They are full of solid SQL advice:
For SQL Server performance tuning, Itzik Ben-Gan is a legend.
You can find his many detailed books here, all with his usual style of empirical measurement to prove his case: http://tsql.solidq.com/books/index.htm
If you're searching for the fastest solution to a t-sql problem add the word 'itzik' to your google search term.
Itzik Ben-Gan has been mentioned over 600 times here on stackoverflow, but I couldn't believe it to find not a single mention of him here on this performance tuning question.
As an additional resource, you can also find some videos of Itzik talking about performance related stuff here on youtube.
Oracle sites
- 2 day performance tuning guide http://docs.oracle.com/cd/E11882_01/server.112/e10822/toc.htm
- Performance Tuning Guide http://docs.oracle.com/cd/E36909_01/server.1111/e16638/toc.htm
Oracle books
- Oracle Core: Essential Internals for DBAs and Developers by Jonathan Lewis
- Expert Oracle Database Architecture: Oracle Database 9i, 10g, and 11g Programming Techniques and Solutions by Thomas Kyte
- SQL Tuning by Dan Tow
- Oracle Database 11g Release 2 Performance Tuning Tips & Techniques (Oracle Press) by Richard Niemiec
참고URL : https://stackoverflow.com/questions/761204/what-resources-exist-for-database-performance-tuning
'IT story' 카테고리의 다른 글
Android Recyclerview GridLayoutManager 열 간격 (0) | 2020.04.28 |
---|---|
탭의 파일에서 NERDTree로 다시 이동하는 방법은 무엇입니까? (0) | 2020.04.28 |
창 이름을 tmux로 고정하십시오 (0) | 2020.04.28 |
SVN 오류-작업 사본이 아님 (0) | 2020.04.28 |
캘린더 응용 프로그램에서 되풀이 이벤트를 모델링하는 가장 좋은 방법은 무엇입니까? (0) | 2020.04.28 |