File: changedpragmas.html

package info (click to toggle)
db5.3 5.3.28%2Bdfsg1-0.8
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 158,400 kB
  • sloc: ansic: 448,406; java: 111,824; tcl: 80,544; sh: 44,326; cs: 33,697; cpp: 21,604; perl: 14,557; xml: 10,799; makefile: 4,077; javascript: 1,998; yacc: 1,003; awk: 965; sql: 801; erlang: 342; python: 216; php: 24; asm: 14
file content (199 lines) | stat: -rw-r--r-- 8,857 bytes parent folder | download | duplicates (8)
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
<?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>Changed PRAGMAs</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="dbsqlbasics.html" title="Chapter 1. Berkeley DB SQL: The Absolute Basics" />
    <link rel="prev" href="unsupportedpragmas.html" title="Unsupported PRAGMAs" />
    <link rel="next" href="addedpragmas.html" title="Added PRAGMAs" />
  </head>
  <body>
    <div xmlns="" class="navheader">
      <div class="libver">
        <p>Library Version 11.2.5.3</p>
      </div>
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">Changed PRAGMAs</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="unsupportedpragmas.html">Prev</a> </td>
          <th width="60%" align="center">Chapter 1. Berkeley DB SQL: The Absolute Basics</th>
          <td width="20%" align="right"> <a accesskey="n" href="addedpragmas.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="changedpragmas"></a>Changed PRAGMAs</h2>
          </div>
        </div>
      </div>
      <div class="toc">
        <dl>
          <dt>
            <span class="sect2">
              <a href="changedpragmas.html#auto_vacuum">PRAGMA auto_vacuum</a>
            </span>
          </dt>
          <dt>
            <span class="sect2">
              <a href="changedpragmas.html#incremental_vacuum">PRAGMA incremental_vacuum</a>
            </span>
          </dt>
          <dt>
            <span class="sect2">
              <a href="changedpragmas.html#journal_size_limit">PRAGMA journal_size_limit</a>
            </span>
          </dt>
        </dl>
      </div>
      <p>
                The following PRAGMAs are available in the BDB SQL interface, but they
                behave differently in some way from standard SQLite.
            </p>
      <div class="sect2" lang="en" xml:lang="en">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title"><a id="auto_vacuum"></a>PRAGMA auto_vacuum</h3>
            </div>
          </div>
        </div>
        <p>
                    The syntax for this PRAGMA is:
                </p>
        <pre class="programlisting">PRAGMA auto_vacuum
PRAGMA auto_vacuum = 0 | NONE | 1 | FULL | 2 | INCREMENTAL </pre>
        <p>
                    Standard SQLite does not allow you to enable or
                    disable auto-vacuum after a table has been created.
                    Berkeley DB, however, allows you to change this at any time.
                </p>
        <p>
                    In the previous syntax, <code class="literal">0</code> and
                    <code class="literal">NONE</code> both turn off auto vacuuming.
                </p>
        <p>
                    <code class="literal">1</code> or <code class="literal">FULL</code> causes
                    full vacuuming to occur. That is, the BDB SQL interface will vacuum
                    the entire database at each commit using a very low
                    fill percentage (1%) in order to return emptied pages
                    to the file system. Because Berkeley DB allows you to call
                    this PRAGMA at any time, it is recommended that you do
                    not turn on FULL vacuuming because doing so can result
                    in a great deal of overhead to your transaction
                    commits.
                </p>
        <p>
                    If <code class="literal">2</code> or <code class="literal">INCREMENTAL</code>
                    is used, then incremental vacuuming is enabled. The
                    amount of vacuuming that is performed for incremental
                    vacuum is controlled using the following PRAGMAs:
                </p>
        <table class="simplelist" border="0" summary="Simple list">
          <tr>
            <td>
              <a class="xref" href="addedpragmas.html#bdbsql_vacuum_fillpercent" title="PRAGMA bdbsql_vacuum_fillpercent">PRAGMA bdbsql_vacuum_fillpercent</a>
            </td>
          </tr>
          <tr>
            <td>
              <a class="xref" href="addedpragmas.html#bdbsql_vacuum_pages" title="PRAGMA bdbsql_vacuum_pages">PRAGMA bdbsql_vacuum_pages</a>
            </td>
          </tr>
        </table>
        <p>
                    Note that you can call 
                    <a class="xref" href="changedpragmas.html#incremental_vacuum" title="PRAGMA incremental_vacuum">PRAGMA incremental_vacuum</a>
                    to perform an incremental vacuum operation on demand.
                </p>
        <p>
                    When performing vacuum operations, Berkeley DB
                    defragments and repacks individual database pages,
                    while SQLite only truncates the freelist pages from
                    the database file.
                </p>
        <p>
                    For more information on auto vacuum, see
                    <a class="ulink" href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum" target="_top">PRAGMA auto_vacuum</a>
                    in the SQLite documentation.
                </p>
      </div>
      <div class="sect2" lang="en" xml:lang="en">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title"><a id="incremental_vacuum"></a>PRAGMA incremental_vacuum</h3>
            </div>
          </div>
        </div>
        <p>
                    Performs incremental vacuum operations on demand. You can cause
                    incremental vacuum operations to be performed automatically using 
                    <a class="xref" href="changedpragmas.html#auto_vacuum" title="PRAGMA auto_vacuum">PRAGMA auto_vacuum</a>.
                </p>
        <p>
                    Note that for SQLite, this PRAGMA is used to specify
                    the maximum number of pages to be freed during
                    vacuuming. For Berkeley DB, you use 
                    <code class="literal">PRAGMA bdbsql_vacuum_pages</code> instead.
                </p>
      </div>
      <div class="sect2" lang="en" xml:lang="en">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title"><a id="journal_size_limit"></a>PRAGMA journal_size_limit</h3>
            </div>
          </div>
        </div>
        <p>
                    For standard SQLite, this pragma identifies the
                    maximum size that the journal file is allowed to be.
                </p>
        <p>
                    Berkeley DB uses multiple journal files, Berkeley DB journal
                    files are different to a SQLite journal file in that they
                    contain information about multiple transactions, rather
                    than a single transaction (similar to the SQLite WAL
                    journal file). Over the course
                    of the database's lifetime, Berkeley DB will probably create
                    multiple journal files. A new journal file is created when
                    the current journal file has reached the maximum size
                    configured using the journal_size_limit pragma.
                </p>
        <p>
                    Note that a BDB SQL interface journal file is referred to as a log
                    file in the Berkeley DB documentation.
                </p>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="unsupportedpragmas.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="dbsqlbasics.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="addedpragmas.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">Unsupported PRAGMAs </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> Added PRAGMAs</td>
        </tr>
      </table>
    </div>
  </body>
</html>