我是一个开发人员,他继承了一个功能齐全的盒子,可以做我需要的大部分工作。除了机器名称仍然是旧开发者的名称(我们将其命名为“{username}-dt”或“{username}-lt”以方便网络上的 id)并且我想将其从 old-username 重命名为我的用户名。
当然,这也会影响 SQL,所以我想在重命名我的机器之前,我会就我需要做的事情征求更有经验的建议。我知道有一些“sp_”sproc 需要运行,但是我什么时候运行它们?我是否需要在之前或之后重新启动我的盒子,我是否需要一定级别的特权?它会破坏盒子上任何现有的基于 Windows 的身份验证(这些帐户无论如何都是 AD 帐户)?
在完全导出我的 Oracle 10.2.0.2 数据库期间,我遇到以下警告
[...]
. exporting post-schema procedural objects and actions
EXP-00008: ORACLE error 6502 encountered
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "SYS.DBMS_SCHED_MAIN_EXPORT", line 351
ORA-06512: at "SYS.DBMS_SCHED_JOB_EXPORT", line 14
ORA-06512: at line 1
EXP-00085: The previous problem occurred when calling SYS.DBMS_SCHED_JOB_EXPORT.create_exp for object 102269
EXP-00008: ORACLE error 6502 encountered
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "SYS.DBMS_SCHED_MAIN_EXPORT", line 351
ORA-06512: at "SYS.DBMS_SCHED_JOB_EXPORT", line 14
ORA-06512: …Run Code Online (Sandbox Code Playgroud) 首先:我的头衔很烂,所以帮我找出一个新的?
我不能在这里发布所有的 SQL(超过 30k 个字符),所以我把它贴在了pastebin.com
问题:
我得到一个 XML 文件,我从中抓取了一些记录,我需要从记录中提取一些数据并建立另一个表。这些记录是关于一个事件的发生和发生,我已经在 pastebin 中包含了示例数据以进行重新创建。没有看到数据,很难解释。我已经提供了从我的示例导入中获得的所有数据,这些数据应该足以构建应用程序,但我没有得到比数据中显示的更多的信息。
我会给你一点时间看一眼数据,所以这是有道理的。
所以我需要做的是:对于每个“关闭”事件,我需要将它与下一个“开启”事件相匹配,最后我需要有两张桌子,一张桌子用于“历史事件”,一张桌子为“时事”。但是,如果我能正确构建“历史事件”,我就可以弄清楚如何从中获取“当前事件”。
商业规则:
如果在“on”事件之前收集了两个或更多“off”事件,请保留最旧的“off”事件。如果在“关闭”事件之前收集了两个或更多“开启”事件,则保留最新的“开启”事件。如果有一个完整的对,把它们放在历史表中。如果有一个“关闭”事件而不是一个“开启”事件,把它放在当前表中(所以如果我想继续从这个表中插入/删除,那也很好)。如果当前表中已经存在“关闭”事件,我可以将其移动到历史表中以读取“开启”事件(这将需要稍后实施,但如果我可以匹配配对最初我现在可以继续前进。
我认为这就是逻辑。我的想法是弄清楚如何在 SQL 中执行此操作,或者将其推送到用 C# 编写的应用程序,并使用 C# 中的一些临时列表来执行此操作,并构建我需要用于...下一个逻辑的内容。这在 C# 中可能要容易得多,但我感觉 SQL 可以像 C# 一样轻松地完成这项工作,所以我需要 dba 大师的一些帮助。
我的查询已经不起作用,但这就是我在周五回家之前开始的地方,从那时起我一直在考虑它,并构建一个我可以在网上发布的示例问题(以及整个生活你也知道)。数据是实时数据且准确无误,除了 ID 被匿名化并且文本字段更改为易于使用的内容。
这是一个电子表格,大致显示了我希望数据在最后的样子以及现在的样子。有当前数据(为了清晰起见,每个ID之间有一个间隔行),历史表中的数据(与原始数据的ID对齐以便理解)和当前表(再次对齐)。我希望这可以帮助澄清业务规则。 https://spreadsheets.google.com/ccc?key=0AuvCdeHuVU5ddHRCNkpuWHBUREpRajlmLU5VX2xsWnc&hl=en&authkey=COq7y50H
所以完整的 SQL 包括 tabledefs 和当前(非常不正确的)查询在 pastebin http://pastebin.com/k2f2CLnQ
在 SQL 服务器效率方面哪个更好;使用子查询或连接?
我知道不相关比相关子查询更好。但是连接呢?
使用联接使 SQL 变得更具可读性和可理解性
OUTER JOIN and check for NULLS
Run Code Online (Sandbox Code Playgroud)
但是对于数据库的性能来说是更糟还是更好?
在表中,例如用户表,对于任何特定用户,只有 1 行带有 a,为什么要有 ID 字段,更不用说作为主键了?
我经常使用索引,但在某些情况下我仍然很难知道它们是在帮助还是在伤害。我遵循了一些指导方针,但我不确定它们是否好,也不确定它们的合理性。
在窄数据类型上创建索引比在宽数据类型(例如INTover DATETIME)上创建索引要好。
在多列上创建索引比在单列上创建更好。
最好在从未(或很少)更新的列上创建索引,而不是为频繁更改的列创建索引。
这些是好的指导方针吗?由于我不完全确定我为什么要遵循这些准则,您能否帮助解释每个准则的合理性以及它们何时不适用?
我正在构建一个站点,该站点实现了 David Allen 的“完成任务”,该站点可以接收您的电子邮件、Facebook 新闻源、您在 Twitter 上关注的人的推文,并且计划提供更多服务。问题是我不是 DBA,我不确定如何设计数据库,以便在向站点添加功能时,我不必为了存储它而人为地破坏人们的原始数据(例如,我想在将来的某个时候添加获取 RSS 提要的功能,但我不确定如何做到这一点而不会弄得一团糟)。
我已经使用 DBDesigner 4 记下了我的初步想法,下面是图表和 SQL。
一些注释有助于澄清事情。
有人可以指出我正确的方向吗?如果建议,我也愿意考虑使用 NoSQL 数据库。感谢您的时间和考虑。

这是 SQL 创建脚本,以防万一有人想看到它。
CREATE TABLE Pop3 (
domain VARCHAR NOT NULL,
host VARCHAR NULL,
port INTEGER UNSIGNED NULL,
ssl BOOL NULL,
PRIMARY KEY(domain)
)
TYPE=InnoDB;
CREATE TABLE Imap (
domain …Run Code Online (Sandbox Code Playgroud) 我是 Oracle 和数据库管理的新手。
作为上下文,我想创建一个 Java 类,该类将为我提供使用DESC SOME_TABLE.
我在 Java 中找不到任何特定的方法来做到这一点,但是我发现这ALL_TAB_COLUMNS可以给我类似的信息。我在 SQL Developer 中尝试过,看看输出有多大不同。事实证明,结果与我预期的大不相同。
我希望有人可以引导我了解如何解释以下内容:
desc SOME_TABLE;
select
COLUMN_NAME
, DATA_TYPE
, DATA_LENGTH
, NULLABLE
from ALL_TAB_COLUMNS
where TABLE_NAME='SOME_TABLE'
order by column_id;
Run Code Online (Sandbox Code Playgroud)
给出输出:
Name Null Type
--------------- ------- ----------------------
UIDPK NUMBER(20)
NAME VARCHAR2(255)
2 rows selected
COLUMN_NAME DATA_TYPE DATA_LENGTH NULLABLE
--------------- -------------- -------------- --------
UIDPK NUMBER 22 N
UIDPK NUMBER 22 N
UIDPK NUMBER 22 Y
NAME VARCHAR2 255 N
NAME VARCHAR2 255 Y
NAME VARCHAR2 255 …Run Code Online (Sandbox Code Playgroud) 我在 AWS 中使用 mongo 2.0.7 使用 slaveOk = false 在生产中运行副本集其中一台服务器上的复制延迟接近 58 小时。这种复制滞后有时会减少(以非常慢的速度)有时会增加,但总体而言,它的滞后每天会增加 1-2 小时。
我注意到关于此服务器(辅助)的另一件奇怪的事情是 mms 显示版本为 2.2.1 并键入“独立”服务器,事实并非如此(使用 db.version() 和 rs. status() 命令 )
在 z/OS 上的 DB2 v9(或更高版本)上使用 BLOB 的优缺点是什么?
澄清:是否有一些限制(例如对重组、HA 的影响)?
我们想存储大量文件:在长达 6 个月的时间内存储 1000 万个文件。大多数文件应该在 20k 到 100k 之间,但可能有例外(文件大于 1MB)。大多数文件应该是 XML,但其中一些可能包含数字签名或其他二进制数据。