2011-05-05 137 views

回答

70

您可以使用http://www.sqlite.org/download.html的sqlite3_analyzer。

这是一个非常酷的工具。它显示了每个带有或不带索引的表使用的页数(默认情况下,每个页都是1024字节)。

这是Northwind数据库样本sqlite3_analyzer输出:

*** Page counts for all tables with their indices ******************** 

EMPLOYEES............................. 200   34.4% 
ORDERS................................ 152   26.2% 
CATEGORIES............................ 90   15.5% 
ORDER DETAILS......................... 81   13.9% 
CUSTOMERS............................. 17   2.9% 
SQLITE_MASTER......................... 11   1.9% 
PRODUCTS.............................. 7   1.2% 
SUPPLIERS............................. 7   1.2% 
TERRITORIES........................... 6   1.0% 
CUSTOMERCUSTOMERDEMO.................. 2   0.34% 
CUSTOMERDEMOGRAPHICS.................. 2   0.34% 
EMPLOYEETERRITORIES................... 2   0.34% 
REGION................................ 2   0.34% 
SHIPPERS.............................. 2   0.34% 

它还生成可用于创建使用情况统计,然后你就可以分析数据库的SQL语句。

+0

非常感谢你!只是我正在寻找... – MrMage 2012-07-29 15:13:21

+1

请注意,sqlite3_analyze需要很长时间才能运行。 – alecco 2013-05-29 20:22:12

+0

哈哈!所以这就是'sqlite3_analyzer'的功能! – 2013-06-03 13:33:46

3

我知道这个答案完全违背了问题的精神,但它确实让你的大小,而不复制文件...

$ ls -lh db.sqlite 
-rw-r--r-- 1 dude bros 44M Jan 11 18:44 db.sqlite 
$ sqlite3 db.sqlite 
sqlite> drop table my_table; 
sqlite> vacuum; 
sqlite> ^D 
$ ls -lh db.sqlite 
-rw-r--r-- 1 dude bros 23M Jan 11 18:44 db.sqlite 
+0

这是鬼鬼祟祟!我建议在代码的上面添加注释,以解释代码段的作用,它花了我一些时间。 – Moot 2018-01-24 22:49:27

相关问题