Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 监控和提高数据库性能 » 应用程序分析教程 » 教程:诊断表碎片

 

第 1 课:建立表碎片

本教程假定您已创建了测试数据库。如果尚未创建测试数据库,请参见第 1 课:创建测试数据库

提示

可以将本教程中的 SQL 语句复制并粘贴到 Interactive SQL 中。

♦  建立表碎片
  1. 启动 Sybase Central,并使用用户 ID DBA 和口令 sql 连接到测试数据库 app_profiling.db

    如果不熟悉如何启动 Sybase Central 和连接到数据库,请参见连接到本地数据库

  2. 在左窗格中,选择 app_profiling - DBA 数据库,然后选择 [文件] » [打开 Interactive SQL]。

    Interactive SQL 启动并连接到 app_profiling - DBA 数据库。

  3. 在 Interactive SQL 中,运行以下 SQL 语句以引入表碎片:

    1. 创建表:

      CREATE TABLE "DBA"."tablefrag" (
      "id" UNSIGNED BIGINT NOT NULL DEFAULT AUTOINCREMENT, 
      "val1" LONG VARCHAR NULL, 
      "val2" LONG VARCHAR NULL, 
      "val3" LONG VARCHAR NULL, 
      "val4" LONG VARCHAR NULL, 
      "val5" LONG VARCHAR NULL, 
      "val6" LONG VARCHAR NULL, 
      "val7" LONG VARCHAR NULL, 
      "val8" LONG VARCHAR NULL, 
      "val9" LONG VARCHAR NULL, 
      "val10" LONG VARCHAR NULL,
      PRIMARY KEY ( id ) );
    2. 创建将值插入该表的过程:

      CREATE PROCEDURE "DBA"."proc_tablefrag"( ) 
         BEGIN 
            DECLARE I INTEGER; 
            SET I = 0; 
            WHILE I < 1000 
               LOOP 
                  INSERT INTO "DBA"."tablefrag" ( "val1" ) 
                  VALUES('a'); 
                  SET I = I + 1; 
               END LOOP; 
         END;
    3. 插入值:

      CALL proc_tablefrag( );
    4. 更新表中的值:

      UPDATE "DBA"."tablefrag" 
      SET "val1" = 'abcdefghijklmnopqrstuvwxyz0123456789', 
          "val2" = 'abcdefghijklmnopqrstuvwxyz0123456789', 
          "val3" = 'abcdefghijklmnopqrstuvwxyz0123456789', 
          "val4" = 'abcdefghijklmnopqrstuvwxyz0123456789', 
          "val5" = 'abcdefghijklmnopqrstuvwxyz0123456789', 
          "val6" = 'abcdefghijklmnopqrstuvwxyz0123456789', 
          "val7" = 'abcdefghijklmnopqrstuvwxyz0123456789', 
          "val8" = 'abcdefghijklmnopqrstuvwxyz0123456789', 
          "val9" = 'abcdefghijklmnopqrstuvwxyz0123456789', 
          "val10" = 'abcdefghijklmnopqrstuvwxyz0123456789';
    5. 提交对数据库所做的更改:

      COMMIT;
  4. 退出 Interactive SQL。