首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > IBM DB2 >

如何用SQL获取DB2表空间信息

2012-12-30 
怎么用SQL获取DB2表空间信息如题,高分求援,用什么SQL语句可以获取到DB2的表空间名,再用什么语句可以获取DB

怎么用SQL获取DB2表空间信息
如题,高分求援,用什么SQL语句可以获取到DB2的表空间名,再用什么语句可以获取DB2各表空间的具体信息。
或者,如果不用SQL,DB2的LIB库里面有哪些接口能够获取表空间名,哪些接口能够获取各表空间的具体信息。如果只是用list tablespaces show detail来获取所有表空间的信息就算了,我没办法把这个命令放在C++程序里面实现。
方法越详细越好,对于DB2,我实在是太陌生了。只要能够解决问题,分数不成问题。
[解决办法]
不知道你要查询什么信息
SYSIBM.SYSTABLESPACES
SYSIBM.SYSTBSPACEAUTH
这两个表能查到一些
[解决办法]
tsinfo.sqc -- How to get information at the table space level (C)
from IBM information center


/****************************************************************************
**
** SOURCE FILE NAME: tsinfo.sqc 
** DB2 API USED:
**         sqlbstpq -- Single Tablespace Query
**         sqlbgtss -- Get Tablespace Statistics
**         sqlbmtsq -- Tablespace Query
**         sqlefmem -- Free Memory
**         sqlbotsq -- Open Tablespace Query
**         sqlbftpq -- Fetch Tablespace Query
**         sqlbctsq -- Close Tablespace Query
**         sqlbtcq -- Tablespace Container Query
**         sqlbotcq -- Open Tablespace Container Query
**         sqlbftcq -- Fetch Tablespace Container Query
**         sqlbctcq -- Close Tablespace Container Query
**
** OUTPUT FILE: tsinfo.out (available in the online documentation)
*****************************************************************************
** For the latest information on programming, building, and running DB2 
** applications, visit the DB2 Information Center: 
**     http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp
****************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sqlenv.h>
#include <sqlutil.h>
#include <db2ApiDf.h>
#include "utilemb.h"

int SingleTablespaceInfoGet(void);
int AllTablespacesInfoGetUsingHigherLevelAPIs(void);
int AllTablespacesInfoGetUsingLowerLevelAPIs(void);
int AllTablespaceContainersInfoGetUsingHigherLevelAPIs(void);
int AllTablespaceContainersInfoGetUsingLowerLevelAPIs(void);

/* support functions */
int TablespaceInfoDisplay(struct SQLB_TBSPQRY_DATA, struct SQLB_TBS_STATS);
int ContainerInfoDisplay(struct SQLB_TBSCONTQRY_DATA);

int main(int argc, char *argv[])
{
  int rc = 0;
  char dbAlias[SQL_ALIAS_SZ + 1];
  char user[USERID_SZ + 1];
  char pswd[PSWD_SZ + 1];

  /* check the command line arguments */
  rc = CmdLineArgsCheck1(argc, argv, dbAlias, user, pswd);


  if (rc != 0)
  {
    return rc;
  }

  printf("\nTHIS SAMPLE SHOWS ");
  printf("HOW TO GET INFORMATION AT THE TABLE SPACE LEVEL.\n"); 

  /* connect to database */
  rc = DbConn(dbAlias, user, pswd);
  if (rc != 0)
  {
    return rc;
  }

  rc = SingleTablespaceInfoGet();
  rc = AllTablespacesInfoGetUsingHigherLevelAPIs();
  rc = AllTablespacesInfoGetUsingLowerLevelAPIs();
  rc = AllTablespaceContainersInfoGetUsingHigherLevelAPIs();
  rc = AllTablespaceContainersInfoGetUsingLowerLevelAPIs();

  /* disconnect from database */
  rc = DbDisconn(dbAlias);

  return 0;
} /* main */

int TablespaceInfoDisplay(struct SQLB_TBSPQRY_DATA tablespaceData,
                          struct SQLB_TBS_STATS tablespaceStats)
{
  int rc = 0;
  struct sqlca sqlca;

  printf("    Table space ID  = %ld\n",
         tablespaceData.id);
  printf("    Table space Name= %s\n",
         tablespaceData.name);

  /* "Type" and "Content" are stored bitwise in the flag field */
  printf("    Type            = ");
  switch (tablespaceData.flags & 0xF)
  {
    case SQLB_TBS_SMS:
      printf("System-managed space\n");
      break;
    case SQLB_TBS_DMS:
      printf("Database-managed space\n");
      break;
    default:
      printf("UNKNOWN\n");
      break;
  } /* endswitch */

  printf("    Contents        = ");
  switch (tablespaceData.flags & 0xF0)
  {
    case SQLB_TBS_ANY:
      printf("All types of permanent data. Regular table space\n");
      break;
    case SQLB_TBS_LONG:
      printf("All types of permanent data. Large table space\n");
      break;
    case SQLB_TBS_TMP:
      printf("temp data\n");
      break;
    default:
      printf("UNKNOWN:%d:\n", tablespaceData.flags & 0xF0);
      break;
  } /* endswitch */

  printf("    State           = ");


  switch (tablespaceData.tbsState)
  {
    case SQLB_NORMAL:
      printf("Normal\n");
      break;
    case SQLB_QUIESCED_SHARE:
      printf("Quiesced: SHARE\n");
      break;
    case SQLB_QUIESCED_UPDATE:
      printf("Quiesced: UPDATE\n");
      break;
    case SQLB_QUIESCED_EXCLUSIVE:
      printf("Quiesced: EXCLUSIVE\n");
      break;
    case SQLB_LOAD_PENDING:
      printf("Load pending\n");
      break;
    case SQLB_DELETE_PENDING:
      printf("Delete pending\n");
      break;
    case SQLB_BACKUP_PENDING:
      printf("Backup pending\n");
      break;
    case SQLB_ROLLFORWARD_IN_PROGRESS:
      printf("Roll forward in progress\n");
      break;
    case SQLB_ROLLFORWARD_PENDING:
      printf("Roll forward pending\n");
      break;
    case SQLB_RESTORE_PENDING:
      printf("Restore pending\n");
      break;
    case SQLB_DISABLE_PENDING:
      printf("Disable pending\n");
      break;
    case SQLB_REORG_IN_PROGRESS:
      printf("Reorg in progress\n");
      break;
    case SQLB_BACKUP_IN_PROGRESS:
      printf("Backup in progress\n");
      break;
    case SQLB_STORDEF_PENDING:
      printf("storage must be defined\n");
      break;
    case SQLB_RESTORE_IN_PROGRESS:
      printf("Restore in progress\n");
      break;
    case SQLB_STORDEF_ALLOWED:
      printf("storage may be defined\n");
      break;
    case SQLB_STORDEF_FINAL_VERSION:
      printf("storDef is in 'final' state\n");
      break;
    case SQLB_STORDEF_CHANGED:
      printf("storDef was changed prior to rollforward\n");
      break;
    case SQLB_REBAL_IN_PROGRESS:
      printf("dms rebalancer is active\n");
      break;
    case SQLB_PSTAT_DELETION:
      printf("TBS deletion in progress\n");
      break;
    case SQLB_PSTAT_CREATION:
      printf("TBS creation in progress\n");


      break;
    default:
      printf("UNKNOWN\n");
      break;
  } /* endswitch */

  printf("    Total pages     = %ld\n",
         tablespaceStats.totalPages);
  printf("    Useable pages   = %ld\n",
         tablespaceStats.useablePages);
  printf("    Used pages      = %ld\n",
         tablespaceStats.usedPages);
  printf("    Free pages      = %ld\n",
         tablespaceStats.freePages);
  printf("    High water mark = %ld\n",
         tablespaceStats.highWaterMark);

  printf("\n");

  return 0;
} /* TablespaceInfoDisplay */



[解决办法]
db2 list tablespaces show detail
[解决办法]
学习到了。
[解决办法]
学习一下……谢~!

热点排行