小编Lei*_*fel的帖子

检测索引合并

有没有办法知道COALESCE一个索引是否已经完成?这样一个似乎没有更新CREATEDLAST_DDL_TIMELAST_ANALYZED属性。

注意:我指的COALESCE不是返回表达式列表中第一个非空 expr 的 ,而是用于在块中使空闲空间像这样连续的那个:

ALTER INDEX [Index Name] COALESCE;
Run Code Online (Sandbox Code Playgroud)

index oracle oracle-11g-r2

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

为 SQL 或 Oracle 搜索数据字典

我正在寻找 SQL Server 和 Oracle 数据库的元数据规范(数据字典)。

通过元数据映射,我的意思是对构成数据库模型的对象及其关系的明确描述(即服务器具有 0:n 数据库,表具有 1:n 列,列具有 0:n 约束)。

这些 DBMS 平台的任何版本都是有用的。

oracle sql-server metadata

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

在 FOR 循环中引用 PL/SQL 变量

我编写了一个 PL/SQL 脚本来查找表中长列的大小。只是为了使脚本通用,我将表名和列名作为变量传递,但我收到一条错误消息,说表或视图不存在。详细信息是:

ORA-06550: line 8, column 34:
PL/SQL: ORA-00942: table or view does not exist
ORA-06550: line 8, column 11:
PL/SQL: SQL Statement ignored
ORA-06550: line 9, column 42:
PLS-00364: loop index variable 'J' use is invalid
ORA-06550: line 9, column 3:
PL/SQL: Statement ignored
Run Code Online (Sandbox Code Playgroud)

脚本是:

declare
a number := 0;
x number := 0;
i number := 0;
tablename varchar2(100):= 'FILES';
columnname varchar2(100):= 'FILESIZE';
begin
for  j in (select columnname from tablename) loop
  a:=UTL_RAW.LENGTH (UTL_RAW.CAST_TO_RAW(j.columnname));
    i := i+1; …
Run Code Online (Sandbox Code Playgroud)

oracle-10g plsql

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

如何调试“IO 错误:TNS 数据通道结束”错误?

我看到有关应用程序因来自 Oracle (10g) 服务器的“TNS 数据通道结束”错误而导致某些查询失败的零星报告。是否有任何我可以运行的查询(例如,使用 SQL*Plus 或其他工具)来询问 Oracle 服务器此类故障的原因是什么?我应该寻找什么日志?

oracle oracle-10g

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

克隆/复制 Oracle 10g 和 11g

嗨,我是 Oracle 领域的绝对初学者。我想学习如何将复制的 oracle 数据库克隆到一些备份,在另一台服务器上使用此备份。

Oracle 安装在 Windows Server 2003 上。

我有一些问题:

  • 当我需要复制 oracle DB 时,我必须关闭服务吗?
  • 我找到了很多例子,但我不知道哪个适合初学者。
  • 是否存在用于克隆 Oracle DB 的一些图形工具?

oracle oracle-11g oracle-10g

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

多语言数据的最佳数据库设计是什么?

我正在为具有以下功能的软件设计多语言数据库:

  • 每个国家使用的数据与其他国家不同
  • 每个国家/地区使用的数据将采用 2 种语言:英语和母语
  • 将有一个中央位置来控制所有国家/地区的所有数据的更新和删除

对于这些多语言数据库,我有两种选择:

  1. 每个国家的每个实体的表格将有一列英语和母语 在此处输入图片说明

    • 我认为这种方式可以轻松快速地更新每个国家/地区的数据,而且我可以将自己的表格分开,以便与那里的软件一起使用。
    • 但这意味着如果我有 15 个国家/地区,我必须重复表格 15 次。
  2. 所有语言的表格作为参考,链接到每个实体的表格,其中包含所有国家所有语言的数据 在此处输入图片说明

    • 它将使我的数据库更简单,表数量更少,检索数据也更简单。
    • 但是将所有国家的一个实体的所有数据放在一张表中是危险的。因此,任何攻击或错误都会破坏我为所有这些国家所做的工作。
    • 我可以在同一个表中排列数据,使相同语言的每一行都放在一起吗?
    • 我可以将每个国家所需的数据从中央表中分离出来,以便仅在那里与软件一起使用吗?

database-design

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

测试查询速度

当我第一次运行查询时,执行需要 x 毫秒。当我第二次运行它时,它花费的时间要少得多。我假设这个机制涉及一些缓存,但我需要知道我的查询的真实速度是多少。

  • 我可以在查询指令后重置缓存或类似的东西吗?
  • 在开发阶段,您使用什么来查看查询速度?
  • 你能给我提供一个有用的资源/工具/教程/博客来阅读这个东西/功能/问题吗?

顺便说一句,我在 Windows (XAMPP) 中使用 Apache、MySQL 和 PHP。

mysql testing windows query php

3
推荐指数
1
解决办法
2480
查看次数

t-sql - 组合学

我正在尝试在可变长度字符串中找到所有可能的字符组合。

例如:“--”将有 2^n = 2^2 = 4 种可能性,“x-”、“-x”、“xx”、“--”

我认为基本上我需要循环 c(2,2) + c(2,1) + c(2,0) 其中 c(n,r) = n!/ (r! * (nr)!) 但是我在使用 cte 处理事情时遇到了麻烦。到目前为止,随着您向字符串添加字符,一切都开始崩溃了。

使用数字表 -

declare @s varchar(15)
set @s = '--'

;with subset as (
select cast(stuff(@s,number,1,'x') as varchar(15)) as token,
     cast('.' + cast(number as char(1)) + '.' as varchar(11)) as permutation,
     cast(1 as int) as iteration ,
     number
from numbers where number between 1 and len(@s)
union 
select @s, '.0.', 1, 0
) ,

combination as ( …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql

3
推荐指数
1
解决办法
1552
查看次数

关于选择真正快速的 DBMS 的建议

我正在从事一个项目,该项目对正在传输的数据进行实时监控,并记录是否存在各种类型的错误等。CRUD 操作是实时的。我们最初计划使用 PostgreSQL,但我们面临的问题是 PostgreSQL 即使稍微调整一下也不够快,无法处理实时 CRUD 操作;MySQL和其他大人物也是如此。SQLite 的执行速度比它们快很多,但是当数据库大小达到几百 MB 时,它很快就几乎死了。另一个限制是监控是通过网络完成的。

有没有可以处理如此快速操作的数据库?还是我应该选择 NoSQL 数据库?

编辑(关于设计):

设计尽可能地标准化。存储的数据几乎是相互独立的,因此很少有连接。另外,我说“几百 MB”只是作为参考。我们处理的实际数据库的大小为多个 GB。每秒都会插入大量数据并检索。

谈到 PostgreSQL,在我对我的数据运行的测试中,它花费的时间是 SQLite 花费的时间的 5-7 倍。

编辑(关于速度):

我想提一个可能发生的最坏情况

假设主应用程序正在 10 个实例(或 PC)上使用。它们都与中央 DBMS 交互并将数据插入其中。现在,每个应用程序都会有许多线程对实时传输的数据执行一些操作。该应用程序会报告流中是否存在错误数据。而且由于数据是在数据包级别进行分析的,因此一秒钟内可能会发生大量错误。根据一些非常基本的计算,最坏的情况可能需要每个实例每秒约 3k 行的插入速率,每行有大约 8-10 个相关列。我在我的机器(4GB 内存,QuadCore)上测试了这样的测试,SQLite 能够在大约 1 秒内通过网络完成这个测试。我稍微调整了 PostgreSQL,它在大约 5 秒内完成了同样的工作(我承认我没有对其进行很多优化,因为我不是 DBMS 领域的专家)。但瓶颈随着 SQLite 中数据库大小的增长而出现;插入看起来几乎没问题,但读取需要很多时间。我自己用 3gb 的 DB 大小对其进行了测试。

我们主要关心的是插入,在最坏的情况下,每个应用实例大约有 3k 次插入,平均每个实例大约有 500-1k 次插入。

nosql performance database-recommendation

3
推荐指数
1
解决办法
1245
查看次数

SQL Server DATEDIFF:dayofyear 与 day 有何不同?

当我查看SQL Server 上的DATEDIFF()函数时,我发现它采用datepart作为其第一个参数。

可能的日期部分值包括daydayofyear

据我了解,dayofyear是一年中的第几天(例如,2 月 2 日是 33),day是该月的第几天(因此 2 月 2 日是 2)。但是,我不明白 DATEDIFF 函数的区别。

这里有些例子:

select DATEDIFF(dayofyear, '2012-01-01', '2012-02-02')
returns: 32

select DATEDIFF(day, '2012-01-01', '2012-02-02')
returns: 32

select DATEDIFF(dayofyear, '2011-02-01', '2012-02-02')
returns: 366

select DATEDIFF(day, '2011-02-01', '2012-02-02')
returns 366
Run Code Online (Sandbox Code Playgroud)

对于 DATEDIFF() 而言,dayofyearday是否等效?

sql-server t-sql

3
推荐指数
1
解决办法
5500
查看次数