java-JDBC-外文翻译-外文文献-英文文献.doc
《java-JDBC-外文翻译-外文文献-英文文献.doc》由会员分享,可在线阅读,更多相关《java-JDBC-外文翻译-外文文献-英文文献.doc(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、原文一:Java Programming with Oracle JDBC:PerformancePerformance is usually considered an issue at the end of a development cycle when it should really be considered from the start.Often, a task called performance tuning is done after the coding is complete, and the end user of a program complains about
2、 how long it takes the program to complete a particular task.The net result of waiting until the end of the development cycle to consider performance includes the expense of the additional time required to recode a program to improve its performance.Its my opinion that performance is something that
3、is best considered at the start of a project.When it comes to performance issues concerning JDBC programming there are two major factors to consider. The first is the performance of the database structure and the SQL statements used against it. The second is the relative efficiency of the different
4、ways you can use the JDBC interfaces to manipulate a database.In terms of the databases efficiency, you can use the EXPLAIN PLAN facility to explain how the databases optimizer plans to execute your SQL statements. Armed with this knowledge, you may determine that additional indexes are needed, or t
5、hat you require an alternative means of selecting the data you desire.On the other hand, when it comes to using JDBC, you need to know ahead of time the relative strengths and weaknesses of using auto-commit, SQL92 syntax, and a Statement versus a PreparedStatement versus a CallableStatement object.
6、 In this chapter, well examine the relative performance of various JDBC objects using example programs that report the amount of time it takes to accomplish a given task. Well first look at auto-commit. Next, well look at the impact of the SQL92 syntax parser. Then well start a series of comparisons
7、 of the Statement object versus the PreparedStatement object versus the CallableStatement object. At the same time well also examine the performance of the OCI versus the Thin driver in each situation to see if, as Oracles claims, there is a significant enough performance gain with the OCI driver th
8、at you should use it instead of the Thin driver. For the most part, our discussions will be based on timing data for 1,000 inserts into the test performance table TESTXXXPERF. There are separate programs for performing these 1,000 inserts using the OCI driver and the Thin driver. The performance tes
9、t programs themselves are very simple and are available online with the rest of the examples in this book. However, for brevity, Ill not show the code for the examples in this chapter. Ill only talk about them. Although the actual timing values change from system to system, their relative values, or
10、 ratios from one system to another, remain consistent. The timings used in this chapter were gathered using Windows 2000. Using objective data from these programs allows us to come to factual conclusions on which factors improve performance, rather than relying on hearsay.Im sure youll be surprised
11、at the reality of performance for these objects, and I hope youll use this knowledge to your advantage. Lets get started with a look at the testing framework used in this chapter.A Testing FrameworkFor the most part, the test programs in this chapter report the timings for inserting data into a tabl
12、e. I picked an INSERT statement because it eliminates the performance gain of the database block buffers that may skew timings for an UPDATE, DELETE, or SELECT .The test table used in the example programs in this chapter is a simple relational table. I wanted it to have a NUMBER, a small VARCHAR2, a
13、 large VARCHAR2, and a DATE column. Table TESTXXXPERF is defined as:create table TestXXXPerf (id number,code varchar2(30),descr varchar2(80),insert_user varchar2(30),insert_date date )tablespace users pctfree 20storage( initial 1 M next 1 M pctincrease 0 );alter table TestXXXPerfadd constraint TestX
14、XXPerf_Pkprimary key ( id )using indextablespace users pctfree 20storage( initial 1 M next 1 M pctincrease 0 );The initial extent size used for the table makes it unlikely that the database will need to take the time to allocate another extent during the execution of one of the test programs. Theref
15、ore, extent allocation will not impact the timings. Given this background, you should have a context to understand what is done in each section by each test program.Auto-CommitBy default, JDBCs auto-commit feature is on, which means that each SQL statement is committed as it is executed. If more tha
16、n one SQL statement is executed by your program, then a small performance increase can be achieved by turning off auto-commit. Lets take a look at some numbers. Table 19-1 shows the average time, in milliseconds, needed to insert 1,000 rows into the TESTXXXPERF table using a Statement object. The ti
17、mings represent the average from three runs of the program. Both drivers experience approximately a one-second loss as overhead for committing between each SQL statement. When you divide that one second by 1,000 inserts, you can see that turning off auto-commit saves approximately 0.001 seconds (1 m
18、illisecond) per SQL statement. While thats not interesting enough to write home about, it does demonstrate how auto-commit can impact performance.Table 19-1: Auto-commit timings (in milliseconds)Auto-commitOCIThinOn3,7123,675Off2,6132,594Clearly, its more important to turn off auto-commit for managi
19、ng multistep transactions than for gaining performance. But on a heavily loaded system where many users are committing transactions, the amount of time it takes to perform commits can become quite significant. So my recommendation is to turn off auto-commit and manage your transactions manually. The
20、 rest of the tests in this chapter are performed with auto-commit turned off. SQL92 Token ParsingLike auto-commit, SQL92 escape syntax token parsing is on by default. In case you dont recall, SQL92 token parsing allows you to embed SQL92 escape syntax in your SQL statements (see Oracle and SQL92 Esc
21、ape Syntax in Chapter 9). These standards-based snippets of syntax are parsed by a JDBC driver transforming the SQL statement into its native syntax for the target database. SQL92 escape syntax allows you to make your code more portable-but does this portability come with a cost in terms of performa
22、nce?Table 19-2 shows the number of milliseconds needed to insert 1,000 rows into the TESTXXXPERF table. Timings are shown with the SQL92 escape syntax parser on and off for both the OCI and Thin drivers. As before, these timings represent the result of three program runs averaged together. Table 19-
23、2: SQL92 token parser timings (in milliseconds)SQL92 parserOCIThinOn2,5672,514Off2,7442,550Notice from Table 19-2 that with the OCI driver we lose 177 milliseconds when escape syntax parsing is turned off, and we lose only 37 milliseconds when the parser is turned off with the Thin driver. These res
24、ults are the opposite of what you might intuitively expect. It appears that both drivers have been optimized for SQL92 parsing, so you should leave it on for best performance. Now that you know you never have to worry about turning the SQL92 parser off, lets move on to something that has some potent
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java JDBC 外文 翻译 文献 英文
限制150内