Skip to Content

每个数据库系统都会有一些系统内置的数据库表来记录一些系统信息,包括当前数据库中的表、用户、锁、存储、性能以及其他各种信息,SAP HANA也不例外。在SAP HANA中,一共有262张系统表,设计数据库信息的方方面面。虽然HANA  STUDIOAdministration中提供了一些信息的可视化查询,但是当一个普通用户没有CATALOG READ权限时,这个用户是无法通过HANA STUDIO查询到这些信息的。除此以外,HANA STUDIO中也只提供一些基础的信息查询,当用户需要更深入细致的了解这些系统信息,还是需要自己手写SQL语句来进行查询。这样的话,一些不习惯使用图形化界面的用户也可以摆脱HANA STUDIO的束缚。

在本系列中,使用用户SVUSER来对SAP HANA中的系统表进行讲解。每个用户都可以对这些SYSTEM VIEWS进行SELECT操作,但是如果没有CATALOG READ权限的话,一个普通用户是无法获取到全部信息的。比如在下面的例子—对M_HOST_INFORMATION进行SELECT操作时,可以发现没有CATALOG_READ权限,SVUSER用户虽然可以对表进行SELECT操作,但是查询出来的结果集却比添加了CATALOG_READ权限之后少很多。

下图是没有将CATALOG_READ权限赋予用户SVUSER的执行结果/wp-content/uploads/2014/02/1_389122.png

下图是将CATALOG_READ权限赋予用户SVUSER之后的执行结果

/wp-content/uploads/2014/02/2_389132.png

在SAP HANA中,一共有262张系统表,如果在这之前没有接触过这些系统表或者在使用其他数据库的时候也没有接触过系统表,学习起来是相当困难的。所以在这个系列中,笔者打算通过HANA STUDIO的Administration中涉及到的那些系统表进行介绍,但并不仅限于这些。通过SAP HANA的SQL TRACE功能,可以将一个tab中涉及到的系统表筛选出来,方法如下:

设置SQL TRACE:在Administration界面中点击SQL TRACE右边的铅笔标志:

/wp-content/uploads/2014/02/3_389137.png

在TRACE CONFIGURATION界面中选择当前用户SVUSER

/wp-content/uploads/2014/02/4_389141.png

在SVUSER的Administration界面中,点击刷新按钮:

/wp-content/uploads/2014/02/5_389142.png

在diagnosis files tab中就可以看到用户SVUSER的sqltrace文件了:

/wp-content/uploads/2014/02/6_389143.png

Trace文件中有很多类似于cursor_139884372934656_c12263.execute(”’ SELECT SUM(file_size) FROM SYS.M_TRACEFILES where host=? ”’, (”’xxxx”’, ))  的执行语句就是当前tab涉及到的SQL语句和系统表了。

overview tab中,可以提取出附件’trace.sql’中所示SQL语句,这些就是用来组成整个overview tab中系统信息的表和字段,在下一篇文章中,笔者将具体介绍这些系统表和字段。


想获取更多SAP HANA学习资料或有任何疑问,请关注新浪微博@HANAGeek!我们欢迎你的加入!

To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply