📝 Teradata教程
83篇技术文档📅  最后修改于: 2020-11-29 09:00:09        🧑  作者: Mango
本章介绍了Teradata的CASE和COALESCE功能。案例表达CASE表达式根据条件或WHEN子句评估每一行,并返回第一个匹配项的结果。如果没有匹配项,则返回ELSE部分的结果。句法以下是CASE表达式的语法。例考虑下面的雇员表。EmployeeNoFirstNameLastNameJoinedDateDepartmentNoBirthDate101MikeJames3/27/200511/...
📅  最后修改于: 2020-11-29 09:00:30        🧑  作者: Mango
主索引用于指定数据在Teradata中的位置。它用于指定哪个AMP获取数据行。 Teradata中的每个表都必须定义一个主索引。如果未定义主索引,则Teradata会自动分配主索引。主索引提供了访问数据的最快方法。一个主数据库最多可以有64列。主索引是在创建表时定义的。主索引有2种类型。唯一主索引(UPI)非唯一主索引(NUPI)唯一主索引(UPI)如果表被定义为具有UPI,则视为UPI的列不应具...
📅  最后修改于: 2020-11-29 09:01:08        🧑  作者: Mango
连接用于合并多个表中的记录。根据这些表中的公共列/值联接表。有不同类型的联接可用。内部联接左外连接右外连接完全外部加入自我加入交叉连接笛卡尔生产加入内部联接内部联接合并来自多个表的记录,并返回两个表中都存在的值。句法以下是INNER JOIN语句的语法。例考虑以下雇员表和薪水表。EmployeeNoFirstNameLastNameJoinedDateDepartmentNoBirthDate10...
📅  最后修改于: 2020-11-29 09:01:31        🧑  作者: Mango
子查询根据另一个表中的值返回一个表中的记录。它是另一个查询中的SELECT查询。首先执行称为内部查询的SELECT查询,结果由外部查询使用。它的一些显着特征是-一个查询可以有多个子查询,并且子查询可以包含另一个子查询。子查询不会返回重复的记录。如果子查询仅返回一个值,则可以使用=运算符将其与外部查询一起使用。如果返回多个值,则可以使用IN或NOT IN。句法以下是子查询的通用语法。例考虑下面的薪水...
📅  最后修改于: 2020-11-29 09:01:59        🧑  作者: Mango
Teradata支持以下表类型来保存临时数据。衍生表挥发表全球临时表衍生表在查询中创建,使用和删除派生表。这些用于在查询中存储中间结果。例下面的示例构建一个派生表EmpSal,其中包含薪水大于75000的员工记录。执行以上查询后,将返回薪水大于75000的员工。挥发表在用户会话中创建,使用和删除易失表。它们的定义不存储在数据字典中。它们保存了经常使用的查询中间数据。以下是语法。句法例执行上述查询后...
📅  最后修改于: 2020-11-29 09:02:18        🧑  作者: Mango
Teradata中提供三种类型的空间。永久空间永久空间是用户/数据库用来保存数据行的最大空间量。永久表,日记帐,后备表和二级索引子表使用永久空间。没有为数据库/用户预先分配永久空间。它们只是定义为数据库/用户可以使用的最大空间量。永久空间的数量除以AMP的数量。每当超出每个AMP限制时,就会生成一条错误消息。线轴空间假脱机空间是未使用的永久空间,系统将其用于保留SQL查询的中间结果。没有假脱机空间...
📅  最后修改于: 2020-11-29 09:02:42        🧑  作者: Mango
一个表只能包含一个主索引。更常见的是,您会遇到表包含其他列的情况,经常使用该列访问数据。 Teradata将对这些查询执行全表扫描。二级索引解决了此问题。二级索引是访问数据的备用路径。主索引和辅助索引之间存在一些差异。二级索引不参与数据分发。次要索引值存储在子表中。这些表内置于所有AMP中。次要索引是可选的。它们可以在表创建期间或表创建后创建。由于它们建立了子表,因此它们占用了额外的空间,并且由于...
📅  最后修改于: 2020-11-29 09:03:01        🧑  作者: Mango
Teradata优化器为每个SQL查询提供了一种执行策略。该执行策略基于在SQL查询中使用的表上收集的统计信息。使用COLLECT STATISTICS命令收集表上的统计信息。优化器要求环境信息和数据人口统计数据提供最佳执行策略。环境信息节点,AMP和CPU的数量内存量资料客层行数行数表中的值范围每个值的行数空数有三种方法可以收集表中的统计信息。随机AMP采样完整的统计数据收集使用样本选项收集统计...
📅  最后修改于: 2020-11-29 09:03:17        🧑  作者: Mango
压缩用于减少表使用的存储。在Teradata中,压缩最多可以压缩255个不同的值,包括NULL。由于减少了存储,Teradata可以在一个块中存储更多记录。由于任何I / O操作都可以处理每个块更多的行,因此可以缩短查询响应时间。可以在使用CREATE TABLE创建表时添加压缩,也可以在使用ALTER TABLE命令创建表后添加压缩。局限性每列只能压缩255个值。主索引列无法压缩。易失性表无法压...
📅  最后修改于: 2020-11-29 09:04:38        🧑  作者: Mango
EXPLAIN命令以英语返回解析引擎的执行计划。它可以与任何SQL语句一起使用,除非在另一个EXPLAIN命令上。当查询前面带有EXPLAIN命令时,解析引擎的执行计划将返回给用户而不是AMP。范例说明考虑具有以下定义的表Employee。以下给出了EXPLAIN计划的一些示例。全表扫描(FTS)当在SELECT语句中未指定任何条件时,优化器可以选择使用“全表扫描”,在该表中访问表的每一行。例以下...
📅  最后修改于: 2020-11-29 09:05:04        🧑  作者: Mango
根据主索引值将一行分配给特定的AMP。 Teradata使用哈希算法来确定哪个AMP获取行。以下是有关哈希算法的高级示意图。以下是插入数据的步骤。客户提交查询。解析器接收查询,并将记录的PI值传递给哈希算法。哈希算法对主索引值进行哈希处理并返回32位数字,称为行哈希。行哈希的高阶位(前16位)用于标识哈希图条目。哈希图包含一个AMP#。哈希映射是包含特定AMP#的存储桶数组。BYNET将数据发送到...
📅  最后修改于: 2020-11-29 09:05:37        🧑  作者: Mango
JOIN INDEX是一个物化视图。每当连接索引中引用的基表更新时,其定义就会永久存储并更新数据。 JOIN INDEX可以包含一个或多个表,也可以包含预聚合的数据。连接索引主要用于提高性能。有不同类型的联接索引可用。单表联接索引(STJI)多表联接索引(MTJI)综合联接指数(AJI)单表联接索引单表联接索引允许根据与基础表中的主索引列不同的主索引列对大型表进行分区。句法以下是JOIN INDE...
📅  最后修改于: 2020-11-29 09:06:05        🧑  作者: Mango
视图是由查询构建的数据库对象。可以通过联接使用单个表或多个表来构建视图。它们的定义永久存储在数据字典中,但不存储数据副本。该视图的数据是动态构建的。视图可以包含表的行的子集或表的列的子集。创建一个视图使用CREATE VIEW语句创建视图。句法以下是创建视图的语法。例考虑下面的雇员表。EmployeeNoFirstNameLastNameBirthDate101MikeJames1/5/19801...
📅  最后修改于: 2020-11-29 09:06:30        🧑  作者: Mango
宏是一组SQL语句,它们通过调用宏名称来存储和执行。宏的定义存储在数据字典中。用户只需要EXEC特权即可执行宏。用户不需要对宏内使用的数据库对象具有单独的特权。宏语句作为单个事务执行。如果宏中的SQL语句之一失败,则所有语句都将回滚。宏可以接受参数。宏可以包含DDL语句,但这应该是宏中的最后一条语句。创建宏使用CREATE MACRO语句创建宏。句法以下是CREATE MACRO命令的通用语法。例...
📅  最后修改于: 2020-11-29 09:06:49        🧑  作者: Mango
存储过程包含一组SQL语句和过程语句。它们可能仅包含程序声明。存储过程的定义存储在数据库中,参数存储在数据字典表中。好处存储过程减少了客户端和服务器之间的网络负载。由于通过存储过程访问数据而不是直接访问它们,因此提供了更好的安全性。由于测试了业务逻辑并将其存储在服务器中,因此可以提供更好的维护。建立程序使用CREATE PROCEDURE语句创建存储过程。句法以下是CREATE PROCEDURE...