小编Nic*_*mas的帖子

Teradata:如何设计要使用许多外键列进行规范化的表?

我正在 Teradata 中设计一个大约有 30 列的表。这些列将需要存储多个时间间隔样式的值,例如 Daily、Monthly、Weekly 等。将实际字符串值存储在表中是一种糟糕的设计,因为这会导致严重的数据重复。相反,我想做的是创建一个原始查找表。该表将保存 Daily、Monthly、Weekly,并将使用 Teradata 的标识列来派生主键。这个主键然后将存储在我创建的表中作为外键。

该表将设计如下:

ID 类型值
--- ------------ ------------
每天 1 次间隔
2 间隔每月
3 间隔每周
4 时间帧 24x7
5 时间帧 8x5

这对我的应用程序很有效,因为我需要知道的只是填充 Web 表单下拉列表时的原始键值。但是,我们使用的其他应用程序需要运行报告或通过提要接收这些数据。因此,需要创建一个视图,将这个表连接到基元表,以便它可以实际返回 Daily、Monthly 和 Weekly。

我关心的是性能。

我从未创建过包含如此大量外键字段的表,并且对 Teradata 还相当陌生。在我走上漫长的道路以艰难的方式弄清楚这一切之前,我希望获得任何建议,以实现我的目标的最佳方式。

performance foreign-key primary-key teradata

5
推荐指数
1
解决办法
1685
查看次数

我的数据库的大小急剧增加。为什么?

我发现我的数据库,特别是USERS表空间的大小急剧增加。

我如何才能找到对位于此表空间中的对象执行的 DML 操作?

oracle database-size

5
推荐指数
1
解决办法
4001
查看次数

是否可以在同一个 SELECT 子句的 SELECT 子句中引用聚合函数的结果?

我不是数据库管理员——只是一个软件工程师。我想知道是否可以减少以下 T-SQL 查询:

SELECT 
  SUM(Price * Quantity) as 'Total',
  SUM(Price * Quantity) * 0.95,
FROM
  SomeTables;
Run Code Online (Sandbox Code Playgroud)

对于这样的事情:

SELECT
  SUM(Price * Quantity) as 'Total',
  'Total' * 0.95,
FROM
  SomeTables;
Run Code Online (Sandbox Code Playgroud)

注意:这只是澄清/支持我的问题的示例。我当前的 SQL 查询比这更大更复杂。

sql-server-2008 sql-server query syntax aggregate

5
推荐指数
1
解决办法
4520
查看次数

缩小 Oracle 中的 SYSTEM 表空间

SYSTEM由于SYS.AUD$表,我们的表空间增长失控。

我们已经截断了,SYS.AUD$但数据文件仍然很大(~30G)。

调整大小不起作用,因为文件包含超出请求RESIZE值的已用数据

我应该在这里做什么?

这是我们的版本信息:

  • Oracle 数据库 11g 企业版 11.2.0.1.0 版 - 64 位生产
  • PL/SQL 版本 11.2.0.1.0 - 生产
  • 核心 11.2.0.1.0 生产
  • 适用于 64 位 Windows 的 TNS:版本 11.2.0.1.0 - 生产
  • NLSRTL 版本 11.2.0.1.0 - 生产

oracle oracle-11g-r2 shrink datafile

5
推荐指数
1
解决办法
1万
查看次数

优化此 SQL 查询以提高性能

我正在尝试优化以下语句:

'VI'+CAST(month(GETDATE()) AS NVARCHAR)+'/'+CAST(year(GETDATE()) AS NVARCHAR)
+'/00000' +CAST(@number+1 AS VARCHAR)
Run Code Online (Sandbox Code Playgroud)

该语句产生的值等VI1/2011/000002,如果该@number参数1

我想在删除多余的强制转换语句和提供连接字符串和整数的有效方法方面对此进行优化。

sql-server stored-procedures

4
推荐指数
2
解决办法
1286
查看次数

如何从结果集中获取列名和类型的列表?

假设我从以下查询中得到一个结果集:

select * 
from sys.database_files;
Run Code Online (Sandbox Code Playgroud)

对于任何给定的结果集,我希望能够查询列名和类型,以便我可以创建表来存储结果。

在 T-SQL 中执行此操作的好方法是什么?

sql-server metadata t-sql

4
推荐指数
2
解决办法
4418
查看次数

oracle 故障安全 - 如何在 nomount 中启动实例

使用Oracle Failsafe,如何在nomount模式下启动实例?

如果实例通过 sqlplus 关闭,Windows 集群管理器只会再次启动它。如果实例通过 Windows 集群管理器关闭,我将无法通过 sqlplus 连接到它。

oracle windows oracle-fail-safe

4
推荐指数
1
解决办法
2561
查看次数

如何在两个相同的数据库之间同步数据

问题是我有两个相同的数据库,一个在我的笔记本电脑的本地主机服务器上,另一个在办公室的主服务器上。是否有任何自动方式或软件可以同步这两个相同数据库之间的数据?我正在使用 SQL Server 2008 R2。

replication sql-server-2008 mirroring

4
推荐指数
1
解决办法
3101
查看次数

SQL Server 索引碎片

什么时候应该重建索引?vs 重组?

什么索引碎片值被认为是健康的?

index sql-server maintenance fragmentation

4
推荐指数
1
解决办法
4413
查看次数

T-SQL 中的奇怪崩溃 - 这是什么?

发生以下错误的典型情况是什么,这意味着什么?

另请注意,当查询失败时,我发现自己与服务器断开了连接(但我自己没有观察到这一点)。

Location:     "xact.cpp":4253
Expression:   !m_parNestedXactCnt
SPID:         56
Process ID:   2208
Description:  Trying to use the transaction while there are 1 parallel nested xacts outstanding
Location:     "xact.cpp":4362
Expression:   !m_parNestedXactCnt
SPID:         56
Process ID:   2208
Description:  Trying to use the transaction while there are 1 parallel nested xacts outstanding
Msg 3624, Level 20, State 1, Line 131
A system assertion check has failed. Check the SQL Server error log for details. Typically, an assertion failure is caused by a software bug …
Run Code Online (Sandbox Code Playgroud)

sql-server parallelism

4
推荐指数
1
解决办法
638
查看次数