小编Ega*_*ian的帖子

如何在 Oracle 中的表上找到索引占用的实际空间?

我想找到 oracle 10g 中表上的索引消耗的实际空间。我不打算包括 oracle 保留的空间以供将来使用。(不应该考虑oracle 的开销。)我想要使用的字节而不是分配的字节。

你能帮我继续前进吗?

另外,有没有办法找到表中长字段的实际大小。

PS:vsize() 和 dbms_lob.getlength() 不起作用。

oracle oracle-10g

12
推荐指数
2
解决办法
6万
查看次数

where 子句中的列顺序应该与索引顺序相同吗?

我正在阅读这个 use-the-index-luke.com,它详细解释了索引的工作原理。此人重申的一件事是索引的顺序很重要,并且为了使查询快速,where 子句列应该与索引中的列相同。今天,我只是证实了这个理论并在 SQL Server 2008 上创建了一个表(id int ,name nvarchar(100) )。我在其中插入了一些 5000 行并创建了一个索引 create index abc on test (name, id )

并触发了查询

select ID, name 
from test 
where ID = 10
and name = '10'
Run Code Online (Sandbox Code Playgroud)

我期待全表扫描后跟查询计划中的选择,但令我惊讶的是计划的输出是选择后的索引扫描。 查询计划

所以,我的问题是 Where 子句中的列顺序重要还是 SQL Server 根据索引定义重新排列它们?

谢谢 !!

sql-server-2008 sql-server

9
推荐指数
2
解决办法
5001
查看次数

在 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
查看次数

不同的写入和读取数据库之间如何保持同步

我的一位朋友在面试时被问到这个问题。给定两个不同的数据库,一个只执行写入,另一个只执行读取。给定指定的时间延迟,如何保持两者之间的同步。我想补充一点,这些数据库具有相同的架构。

例如:R 是我的读取数据库,W 是我的写入数据库。我想确保读数据库应该是写数据库的副本,说一分钟前。

我在这里热衷的是完成的技术(概念)而不是实现。假设 RDBMS 是 SQL Server。

sql-server database-theory high-availability

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

MySql 没有正确优化查询

我有一个表结构如下:

CREATE TABLE `sale_product_inventories` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `sale_id` int(11) NOT NULL,
  `product_id` int(11) NOT NULL,
  `size` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `tier_number` int(11) NOT NULL DEFAULT '1',
  `sale_product_pool_id` int(11) DEFAULT NULL,
  `inventory` int(11) NOT NULL,
  `in_cart_units` int(11) DEFAULT '0',
  `size_display_order` tinyint(4) NOT NULL DEFAULT '0',
  `last_updated_by` int(11) DEFAULT '0',
  `created_by` int(11) DEFAULT '0',
  `status` enum('active','inactive') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'active',
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `UNIQUE` (`sale_id`,`product_id`,`tier_number`,`size`,`sale_product_pool_id`)
) …
Run Code Online (Sandbox Code Playgroud)

mysql

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