Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Backslash escaping is not working right in tostr.awk on the latest ubuntu. The easiest fix is to simply not use any backslashes in the spaceanal.tcl script. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
df550066657cb41bad34ac8e722b8148 |
User & Date: | drh 2011-08-31 17:46:50.850 |
Context
2011-08-31
| ||
18:04 | Only create the sqlite3OSTrace global variable if compiling with SQLITE_TEST. (check-in: 9e6a4c1473 user: drh tags: trunk) | |
17:46 | Backslash escaping is not working right in tostr.awk on the latest ubuntu. The easiest fix is to simply not use any backslashes in the spaceanal.tcl script. (check-in: df55006665 user: drh tags: trunk) | |
13:27 | Add checks to make sure cells in corrupt database files do not overflow a page when doing autovacuum. Problem detected by valgrind. (check-in: d0b347b412 user: drh tags: trunk) | |
Changes
Changes to tool/spaceanal.tcl.
︙ | ︙ | |||
37 38 39 40 41 42 43 | # In-memory database for collecting statistics. This script loops through # the tables and indices in the database being analyzed, adding a row for each # to an in-memory database (for which the schema is shown below). It then # queries the in-memory db to produce the space-analysis report. # sqlite3 mem :memory: | < | | 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | # In-memory database for collecting statistics. This script loops through # the tables and indices in the database being analyzed, adding a row for each # to an in-memory database (for which the schema is shown below). It then # queries the in-memory db to produce the space-analysis report. # sqlite3 mem :memory: set tabledef {CREATE TABLE space_used( name clob, -- Name of a table or index in the database file tblname clob, -- Name of associated table is_index boolean, -- TRUE if it is an index, false for a table nentry int, -- Number of entries in the BTree leaf_entries int, -- Number of leaf entries payload int, -- Total amount of data stored in this table or index ovfl_payload int, -- Total amount of data stored on overflow pages |
︙ | ︙ | |||
289 290 291 292 293 294 295 | if {$int_pages>0} { statline {Index pages used} $int_pages } statline {Primary pages used} $leaf_pages statline {Overflow pages used} $ovfl_pages statline {Total pages used} $total_pages if {$int_unused>0} { | | | | | | | | | | 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 | if {$int_pages>0} { statline {Index pages used} $int_pages } statline {Primary pages used} $leaf_pages statline {Overflow pages used} $ovfl_pages statline {Total pages used} $total_pages if {$int_unused>0} { set int_unused_percent [ percent $int_unused [expr {$int_pages*$pageSize}] {of index space}] statline "Unused bytes on index pages" $int_unused $int_unused_percent } statline "Unused bytes on primary pages" $leaf_unused [ percent $leaf_unused [expr {$leaf_pages*$pageSize}] {of primary space}] statline "Unused bytes on overflow pages" $ovfl_unused [ percent $ovfl_unused [expr {$ovfl_pages*$pageSize}] {of overflow space}] statline "Unused bytes on all pages" $total_unused [ percent $total_unused $storage {of all space}] return 1 } # Calculate the overhead in pages caused by auto-vacuum. # # This procedure calculates and returns the number of pages used by the # auto-vacuum 'pointer-map'. If the database does not support auto-vacuum, |
︙ | ︙ | |||
448 449 450 451 452 453 454 | Page size in bytes The number of bytes in a single page of the database file. Usually 1024. Number of pages in the whole file } | < | | < | 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 | Page size in bytes The number of bytes in a single page of the database file. Usually 1024. Number of pages in the whole file } puts " The number of $pageSize-byte pages that go into forming the complete database" puts { Pages that store data The number of pages that store data, either as primary B*Tree pages or as overflow pages. The number at the right is the data pages divided by the total number of pages in the file. Pages on the freelist |
︙ | ︙ |
Changes to tool/tostr.awk.
1 2 3 4 5 | #!/usr/bin/awk # # Convert input text into a C string # { | < | 1 2 3 4 5 6 7 8 | #!/usr/bin/awk # # Convert input text into a C string # { gsub(/\"/,"\\\""); print "\"" $0 "\\n\""; } |