摘要:
在数据库性能优化的世界中,索引始终扮演着至关重要的角色。 KingbaseES创建索引语法中的INCLUDE关键字为索引创建提供了额外的灵活性,允许在 B-Tree索引中包含额外的非键(Non-Key)列。 这些列虽然不参与索引的排序或搜索过程,但可用于提高某些查询的效率,尤其是在执行索引覆盖扫描( 阅读全文
摘要:
临时表在数据库管理和数据处理中有着广泛的应用,主要用于存储临时数据或进行中间计算。临时表中的数据对会话是私有的,每个会话只能看到和修改自己会话的数据。 KingbaseES支持本地临时表和全局临时表。创建临时表时若不指定GLOBAL或LOCAL,则默认值指定为LOCAL。 本地临时表和全局临时表有如 阅读全文
摘要:
KingbaseES中explain命令来查看执行计划时最常用的方式。其命令格式如下: explain [option] statement 其中option为可选项,常用的是以下5种情况的组合: analyze:执行SQL并且显示实际的运行时间和其他统计信息,默认FALSE。注意:加了analyz 阅读全文
摘要:
从oracle迁移至KingbaseES的用户,经常会问在KingbaseES中怎么查询表的创建时间。 由于KingbaseES本身并不直接存储表的创建时间,所以获取这一信息通常需要依赖于间接方法或日志记录。 如果确实有这种需求,可以通过创建事件触发器的将相关的信息保存下来。 建立保存信息的数据表 阅读全文
摘要:
在处理数据库性能问题时,识别和分析慢查询及阻塞会话是至关重要的步骤。数据库管理员和开发人员常常需要依赖特定的工具和查询语句来追踪这些性能瓶颈。 当数据库响应变慢或出现处理延迟时,第一步通常是查找那些执行时间过长的查询,这些查询通常被称为“慢查询”。 同时,阻塞会话即那些因等待资源(如锁)而暂停执行的 阅读全文
摘要:
在KingbaseES中create table语句支持GENERATED column(生成列)。 生成列是一种特别的列类型,它的值基于其他列的值计算得出。因此,生成列之于列,有点像视图之于表的关系。存在两种类型的生成列:存储生成列和虚拟生成列。 存储生成列在数据被写入(插入或更新操作)时进行计算 阅读全文
摘要:
oracle数据库的触发器迁移到KingbaseES的时候经常会出现一下两类错误: 1.SQL 错误 [42809]: 错误: "xxxxxxxx" 是一个视图。Detail: 视图上的触发器不能有转换表。 2.SQL 错误 [0A000]: 错误: 不能为具有多个事件的触发器指定转换表 这两类问题 阅读全文
摘要:
KingbaseES 使用角色的概念管理数据库访问权限。为了方便权限管理,用户可以建立多个角色,对角色进行授权和权限回收,并把角色授予其他用户。 数据库初始化时,会创建一个超级用户的角色:system(默认,可修改)。 任何操作都是从该用户开始的。 创建角色 CREATE ROLE name [ [ 阅读全文
摘要:
背景 同事A在客户现场,最近注意到客户的主数据库性能有所下降,尤其是在高峰时段。怀疑可能有一些复杂的查询影响了数据库的性能,但尚未确定具体是哪些查询。 为了诊断问题,A决定查看高峰期正在执行的查询,先通过sys_stat_activity视图看下当前有哪些sql在运行: SELECT pid, us 阅读全文
摘要:
1. 动态SQL 动态SQL在程序启动时会根据输入参数替换相应变量。使用动态SQL可以创建更强大和灵活的应用程序,但在编译时SQL语句的全文不确定,因此运行时编译会牺牲一些性能。动态SQL可以是代码或SQL语句的一部分,动态部分要么由开发人员输入,要么由程序本身创建。 1.1 动态SQL使用场景 在 阅读全文