Sql 检查表X中是否有35K+行且有700000+行的有效方法?
我有35K+的记录,比如平面文件中的A列。我必须检查这些记录是否已经存在于表X中,表X中有700000多条记录 列A不是表X中的索引列。我在平面文件中没有任何列在X中被索引。 -我不能在SELECT中使用IN运算符,因为对于35+条记录来说,这不是一个可行的选项,而且成本高昂,限制为1K -所有记录都有一个相似的模式,所以我尝试在SELECT中使用LIKE操作符进行模式匹配,但效率非常低。X中具有类似模式的记录数为120000+ -我没有CREATETABLE特权,无法插入新表和进行减法等操作 我是甲骨文的新手,如果这个问题很幼稚,我很抱歉。此外,我搜索了类似的问题,但没有找到非索引列的答案Sql 检查表X中是否有35K+行且有700000+行的有效方法?,sql,oracle,Sql,Oracle,我有35K+的记录,比如平面文件中的A列。我必须检查这些记录是否已经存在于表X中,表X中有700000多条记录 列A不是表X中的索引列。我在平面文件中没有任何列在X中被索引。 -我不能在SELECT中使用IN运算符,因为对于35+条记录来说,这不是一个可行的选项,而且成本高昂,限制为1K -所有记录都有一个相似的模式,所以我尝试在SELECT中使用LIKE操作符进行模式匹配,但效率非常低。X中具有类似模式的记录数为120000+ -我没有CREATETABLE特权,无法插入新表和进行减法等操作
有人能帮我吗?平面文件是指像CSV或TSV这样的文本文件?若它只是一个文本文件,那个么将它加载到数据库中。也许您可以为此作业创建一个临时表。然后可以使用以下查询:
select *
from x
where (c1, c2, ...) in (select c1, c2, ... from a);
您可以发布一些代码吗?如果一行不存在,您可以快速退出吗?从“……”中的X中选择*;选择count*from X,其中类似于“PRZ%”-116281。您获得创建表权限可能比我们在这方面帮助您更容易。您是否尝试过不存在或加入?当然,平面文件应该通过SQLLDR或外部加载TABLES@RenéNyffenegger我说服我的DBA允许我创建表访问,然后使用签入。谢谢大家的帮助。