SQL As Understood By SQLite

ANALYZE

sql-statement ::= ANALYZE
sql-statement ::= ANALYZE database-name
sql-statement ::= ANALYZE [database-name .] table-name

ANALYZE命令收集有关索引的统计信息并把这些信息存于数据库中一个特殊的表中, 这样,查询优化器就能使用这些信息来选择更好的索引。 如果没有参数,所有相连的数据库中所有的索引都会被ANALYZE。 如果以数据库名作为参数,该数据库中所有的索引都会被ANALYZE。 如果参数是一个表名,那么,只有该表上的索引会被ANALYZE。

最初的实现将这些统计信息存在名为sqlite_stat1的单个表中。 未来的增强版本可能会使用其它的表,而那些表将仍沿用相的的命名规则, 只是其中的“1”将会改成不同的数字。 sqlite_stat1表不能被DROP命令删除。 但表中的数据可以被DELETE命令清空,以起到与删除表相同的作用。