File: configpage.html

package info (click to toggle)
db 5.1.29-9
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 150,348 kB
  • sloc: ansic: 400,169; java: 94,399; tcl: 70,967; sh: 37,399; cs: 30,758; cpp: 21,132; perl: 14,227; xml: 9,854; makefile: 3,777; yacc: 1,003; awk: 942; sql: 801; erlang: 461; python: 216; php: 24; asm: 14
file content (138 lines) | stat: -rw-r--r-- 6,867 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Configuring the Database Page Size</title>
    <link rel="stylesheet" href="gettingStarted.css" type="text/css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
    <link rel="start" href="index.html" title="Getting Started with the Oracle Berkeley DB SQL APIs" />
    <link rel="up" href="configure.html" title="Chapter 3. Configuring the Berkeley DB SQL interface" />
    <link rel="prev" href="using_dbconfig.html" title="The DB_CONFIG File" />
    <link rel="next" href="dbfilesize.html" title="Selecting the Database File Size" />
  </head>
  <body>
    <div class="navheader">
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">Configuring the Database Page Size</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="using_dbconfig.html">Prev</a> </td>
          <th width="60%" align="center">Chapter 3. Configuring the Berkeley DB SQL interface</th>
          <td width="20%" align="right"> <a accesskey="n" href="dbfilesize.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="sect1" lang="en" xml:lang="en">
      <div class="titlepage">
        <div>
          <div>
            <h2 class="title" style="clear: both"><a id="configpage"></a>Configuring the Database Page Size</h2>
          </div>
        </div>
      </div>
      <div class="toc">
        <dl>
          <dt>
            <span class="sect2">
              <a href="configpage.html#selectpage_size">Selecting the Page Size</a>
            </span>
          </dt>
        </dl>
      </div>
      <p>
                When using the BDB SQL interface, you configure your database page size in
                exactly the same way as you do when using 
                SQLite. That is, use <code class="literal">PRAGMA page_size</code>
                to report and set the page size. This PRAGMA must be called
                before you create your first SQLite table. See the
     <a class="ulink" href="http://www.sqlite.org/pragma.html#pragma_page_size" target="_top">PRAGMA page_size</a>
                documentation for more information. 
            </p>
      <p>
                When you use
                <code class="literal">PRAGMA cache_size</code> to size your in-memory
                cache, you provide the cache size in terms of a number of
                pages. Therefore, your database page size influences how large your
                cache is, and so determines how much of your
                database will fit into memory. If you adjust the database
                page size, you may also want to adjust the in-memory cache
                size, as described in 
                <a class="xref" href="configcache.html" title="Configuring the In-Memory Cache">Configuring the In-Memory Cache</a>.
            </p>
      <p>
                The size of your pages can also affect how efficient your
                application is at performing disk I/O. It will also
                determine just how fine-grained the fine-grained locking
                actually is. This is because Berkeley DB locks database pages
                when it acquires a lock. 
            </p>
      <div class="sect2" lang="en" xml:lang="en">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title"><a id="selectpage_size"></a>Selecting the Page Size</h3>
            </div>
          </div>
        </div>
        <p>
                    Note that the default value for your page size is
                    probably correct for the physical hardware that you are using. In
                    almost all situations, the default page size value will
                    give your application the best possible I/O performance. For
                    this reason, tuning the page size should rarely, if
                    ever, be attempted.
                </p>
        <p>
                    That said, when using the BDB SQL interface, the page size affects
                    how much of your tables are locked when read and/or
                    write locks are acquired. (See 
                    <a class="xref" href="lockingnotes.html#dbusage" title="Internal Database Usage">Internal Database Usage</a> 
                    for more information.) 
                    Increasing your page size will typically improve the
                    bandwidth you get accessing the disk, but it also may
                    increase contention if too many key data pairs are on
                    the same page.  Decreasing your page size frequently
                    improves concurrency, but may increase the number of
                    locks you need to acquire and may decrease your disk
                    bandwidth.
                </p>
        <p>
                    When changing your page size, make sure the value you
                    select is a power of 2 that is greater than 512 and
                    less than or equal to 64KB. (Note that the standard
                    SQLite <code class="literal">MAX_PAGE_SIZE</code> limit is not
                    examined for this upper bound.)
                </p>
        <p>
                    Beyond that, there are some additional things 
                    that you need to consider when selecting your page
                    size. For a thorough treatment of selecting your page size, 
                    see the section on <a href="../programmer_reference/general_am_conf.html#am_conf_pagesize" class="olink">Selecting a page size</a> in the 
                    <em class="citetitle">Berkeley DB Programmer's Reference Guide</em>.
                </p>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="using_dbconfig.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="configure.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="dbfilesize.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">The DB_CONFIG File </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> Selecting the Database File Size</td>
        </tr>
      </table>
    </div>
  </body>
</html>