我想从 SQL-Server 2008 访问 Oracle 11g 数据库中的数据
我设置了一个链接服务器,当我执行
select * from [Link_server_name]..Oracle_schema.Oracle_table
Run Code Online (Sandbox Code Playgroud)
和 Oracle_table 包含 Number 和 varchar2 列,所有工作都作为例外。
但是当 Oracle_table 包含一个 CLOB 列时,我收到以下错误:
Der OLE DB-Anbieter 'MSDAORA' für den Verbindungsserver 'L_V407SR8T' hat die Meldung 'Unspecified error' zurückgeben。
Der OLE DB-Anbieter 'MSDAORA' für den Verbindungsserver 'L_V407SR8T' hat die Meldung '发生 Oracle 错误,但无法从 Oracle 检索错误消息。祖鲁克本。
Der OLE DB-Anbieter 'MSDAORA' für den Verbindungsserver 'L_V407SR8T' hat die Meldung '不支持数据类型。' 祖鲁克本。
消息 7306,级别 16,状态 2,第 1 行
Die '"MCCAPP"."DOGGRUPPEN"'-Tabelle vom OLE DB-Anbieter 'MSDAORA' für …
我们有一个租用的数据仓库,我们正在做报告。查询开始需要很长时间,我们正在寻找减少这种情况的选项。目前有两个想法。
创建租户特定的聚合表,并从中查询。
根据租户对数据进行水平分区。
第一个选项意味着对于每个加入的新租户,我们都需要创建一组新表。这并不难,因为新租户的注册会提前几周通知,如果我们忘记了,就会很早就发现缺少报告。
对我来说,对数据进行分区听起来是一种更好的方法,因为我们不会复制数据。我们不必依赖于将新数据传输到聚合表的过程。
我想知道这些选项中的哪一个会更好,如果有人以前有过类似的经历。对数据进行分区真的有帮助吗?或者与将所有数据放在一个“空间”中没有太大区别?
而且,在 Oracle 10g 中,如何对数据进行水平分区?如果我有下表:
TABLE Transaction(id, tenant_id, a, b, c, d)
Run Code Online (Sandbox Code Playgroud)
我们将很快迁移到 Oracle 11g,因此将不胜感激跨版本分区的任何差异。
(注意:我尝试使用分区标签,但没有足够的代表,如果其他人可以添加一个很酷的标签)