【问题标题】:Reduce sybase sql anywhere db file size减少 sybase sql 任何地方的 db 文件大小
【发布时间】:2018-06-26 20:50:12
【问题描述】:

是否有可能减少 sap sql 任何数据库文件的大小?几周后,我们的数据库大小约为 10GB,因为数据库不会自动减小 db-size。但实际上,数据库只包含 240MB 的数据。我这样计算 db-size:

SELECT  sum((((table_page_count * DB_PROPERTY('PageSize')) / 1024) / 1024)) dbsize FROM SYSTAB

一种方法应该是卸载和加载数据库,但这似乎非常耗时并且在运行时是不可能的。

有没有人有想法,如何解决这个问题?

谢谢!

【问题讨论】:

标签: sql database sybase filesize sqlanywhere


【解决方案1】:

您的大小计算缺少索引使用的空间、行扩展使用的空间和检查点日志使用的空间。 sa_table_page_usage() 过程或 dbinfo 实用程序是计算正在使用的数据库文件量的更好方法,但仍不会告诉您检查点日志的大小。

为了回答您的问题,数据库文件大小可能会在您关闭时自动缩小,因为在服务器关闭时会从数据库文件中删除检查点日志。但是,回收空闲表/索引页以缩小数据库文件大小的唯一方法是重建数据库。 除非您真的需要空间,否则没有理由这样做。数据库服务器将根据需要重新使用空闲页面。

【讨论】:

    【解决方案2】:

    根据https://dba.stackexchange.com/questions/43221/shrink-a-sql-anywhere-12-database 接受的答案,解决方案是使用 dbunload 命令卸载/重新加载数据库(自然是离线)。有关此命令的更多信息,请访问 http://dcx.sybase.com/1200/en/dbadmin/dbunload.html

    该页面上的另一个答案给出了这个示例命令行:

    dbunload -c "UID=username;PWD=password;DBF=DB_old.db" -an "DB_new"
    
    • DB_old.db 是原始数据库的名称。
    • DB_new.db 是缩水数据库的名称。
    • “DB_old”和“DB_new”文件的位置是相对于正在运行的服务器的路径。
    • 如果数据库空间中有多个文件:

      DB1_old.db, DB2_old.db, ... DBn_old.db
      

      那就是结果

      DB1_new.dbr, DB2_new.dbr .... DBn_new.dbr
      

    在上面链接的 dbunload 参考页面中提供了连接字符串的示例。

    【讨论】:

      【解决方案3】:

      这就是我们在 Sybase ASE 中检查 db 中使用的大小的方式:

      select
        convert (varchar(61),o.name+'.'+i.name ) as object,
        rowtotal = convert(numeric(18,0),0),
        convert(bigint,used_pages(db_id(), o.id,indid)) * @@maxpagesize/1024 as used_pages_kb,
        convert(bigint,data_pages(db_id(), o.id,indid)) * @@maxpagesize/1024 as data_pages_kb,
        convert(bigint,reserved_pages(db_id(),o.id,indid)) * @@maxpagesize/1024 as reserved_kb
      from
        sysobjects o,
        sysindexes i
      where
        o.type='U'
        and o.id=i.id
      order by used_pages_kb desc
      

      它显示每个对象使用的大小(意味着表、索引等)

      【讨论】:

      • 但这并不能回答他的问题
      • Adaptive Server Enterprise (ASE) SQL Anywhere(又名 ASA)是两种完全不同的产品。
      猜你喜欢
      • 1970-01-01
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-10
      • 1970-01-01
      • 2020-04-23
      • 2013-06-25
      • 1970-01-01
      相关资源
      最近更新 更多