首页
学习
活动
专区
圈层
工具
发布

PostgreSQL的PDF.NET驱动程序构建过程

">集合名称         /// 请求的架构的一组限制值         /// 数据库架构信息表...                ds = this.ExecuteDataSet(sql);             }                         DataTable dt = ds.Tables...= 'trigger';";             return this.ExecuteDataSet(sql).Tables[0];         }     } }  注意上面程序中的 PrepareSQL...另外程序为了支持获取数据库的架构信息,重写了AdoHelper的抽象方法GetSchema,有关PostgreSQL具体获取表架构信息的内容,请参看 http://www.alberton.info/postgresql_meta_info.html...Devart.Data.dll,Devart.Data.PostgreSql.dll,使用下面的名称空间: using Devart.Data.PostgreSql; 由于dotConnect的驱动程序采用Oracle

1.7K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    《Oracle Concept》第三章 - 5

    这是学习Oracle从入门到精通的基础。...如果一条SQL语句仅仅会访问索引列,那么数据库会直接从索引读取该值,不会从表中检索,即无需回表。如果语句需要访问除索引列外的其他列,则数据库会使用rowid定位表中的行。...通常,数据库检索数据会读取一个索引块和一个表块。 可以参考: 《Oracle Database Performance Tuning Guide》了解关于索引扫描的详细信息。...使用这种方法,数据库会扫描比employees表更小的数据集,因为所有检索列都包含在查询中了,避免了数据排序。 全扫描会读取整个索引,如下所示: ?...快速全索引扫描 快速全索引扫描是一种无需访问表的全索引扫描,数据库会无序地读取索引数据块。 快速全索引扫描是全表扫描的补充,他的执行需要满足以下条件: 索引必须包含检索中的所有列。

    51920

    《Oracle Concept》第三章 - 8

    背景: 按照《Oracle Conecpt》的结构一起了解Oracle数据库,这是学习Oracle从入门到精通的基础。...Concept》前言介绍-2》 《《Oracle Concept》前言介绍-1》 《《Oracle Conecpt》 - 目录结构》 《《Oracle Conecpt》 - 初步认识1》 第二章《Tables...在Oracle RAC架构下尤其明显,因为多个实例会反复修改相同的数据块。例如,orders表中主键是序列,递增顺序。...由于反向索引的数据不是按照列的顺序存储的,因此在某些场景下就无法支持索引范围扫描的检索。例如,一个用户需要检索ID值大于20的记录,数据库就无法从包含20这个ID值的索引叶子块水平移动进行检索。...换句话说,反向索引的副作用,要清楚才行,如果应用大多数查询是检索“最近的”数据,通常只需要缓存整个索引很少的一部分,对于反向索引,他的目的是将热点从索引最右侧叶子块,分配到索引不同的区域,因此可能需要缓存索引的大部分块

    53610

    《Oracle Concept》第三章 - 6

    数据库通常使用索引范围扫描来访问选择度的数据。选择度是检索返回的条数和表中所有数据的百分比,0表示没有任何记录返回,1表示返回的是表中所有行。...索引范围扫描可以是一个范围条件,例如检索departments表的ID值在10和40之间的记录。为了扫描索引,数据库会在索引叶子块上向后或者向前移动。...当复合索引的前导列不在检索谓词中的时候,数据库才可能选择索引跳跃扫描。例如,假设在sh.customers表中检索一个顾客: ? 顾客表列cust_gender的值是M或者F。...数据库会从逻辑上将索引分为键值F和键值M的两个子索引。 当检索email是Abbey@company.com的顾客记录时,数据库会扫描键值为F的子索引,然后扫描键值为M的子索引。...从原理层面,数据库会执行下面的检索: ? 可以参考: 《Oracle Database Performance Tuning Guide》了解有关跳跃扫描的信息。

    62650

    《Oracle Concept》第二章 - 16

    背景: 按照《Oracle Conecpt》的结构一起了解Oracle数据库,这是学习Oracle从入门到精通的基础。...本文主题:第二章《Tables and Table Clusters》 - Overview of Tables。 哈希聚簇概要 哈希聚簇,除了会用一个哈希函数替代索引键之外,就像一个索引聚簇。...在索引表或者索引聚簇中,Oracle数据库会使用独立索引中的键值定位数据行。为了查找或存储索引表或表聚簇中的行,数据库至少需要执行两次I/O操作: 一次或多次查找或存储索引中的键值。...另一次是读取或写入表或表簇的行。 为了查找或存储哈希聚簇中的行,Oracle数据库会对行的聚簇键值性哈希函数。得到的哈希值会对应到聚簇的一个数据块上,数据库会对这些数据块进行读写操作。...哈希是一种提高数据检索性能的可选方法。当可以满足如下条件的时候,才会从聚簇中得到便利: 对表更多的是检索操作,不是修改操作。 哈希键列通常使用等价条件,例如,department_id=20。

    34920

    《Oracle Concept》第三章 - 2

    背景: 按照《Oracle Conecpt》的结构一起了解Oracle数据库,这是学习Oracle从入门到精通的基础。...Concept》前言介绍-2》 《《Oracle Concept》前言介绍-1》 《《Oracle Conecpt》 - 目录结构》 《《Oracle Conecpt》 - 初步认识1》 第二章《Tables...复合索引中的列应该按顺序出现在检索条件中,才能最大化检索表中不相邻行的数据。 复合索引能提高WHERE条件引用了复合索引中所有列或者前导部分列的SELECT语句的检索速度。...例如,假设应用经常检索employees表的last_name,job_id和salary列。而且假设last_name列的cardinality集势很高,意味着相比表的数据量,他的唯一值的数量很高。...在示例中,不访问last_name列的检索,不会用到索引。 注意: 在一些场景中,例如当前导列的cardinality值很低,数据库可能会选择索引跳跃扫描(参考“Index Skip Scan”)。

    56410

    ORACLE EXP命令

    命令用于实现对数据库的导出/导入操作; exp命令用于把数据从远程数据库server导出至本地,生成dmp文件; imp命令用于把本地的数据库dmp文件从本地导入到远程的Oracle数据库中...FILE 输入文件 (EXPDAT.DMP) TOUSER username列表 SHOW 仅仅列出文件内容 (N) TABLES 表名列表 IGNORE...FILE 输出文件 (EXPDAT.DMP) TABLES 表名称列表 COMPRESS 导入到一个区 (Y) RECORDLENGTH IO 记录的长度 GRANTS...,TableB 导出 exp system/manager@TestDB file=E:/sampleDB.dmp tables=(TableA,TableB) 4 将数据库中的表tableA...DIRECT參数将告诉EXP直接读取数据,而不像传统的EXP那样,使用SELECT来读取表中的数据,这样就降低了SQL语句处理过程。一般也建议使用。只是有些情况下DIRECT參数是无法使用的。

    3.6K20

    information_schema.schemata_information theory

    该 INFORMATION_SCHEMA数据库包含几个只读表。它们实际上是视图,而不是基表,因此没有与它们关联的文件,并且您无法在它们上设置触发器。此外,没有具有该名称的数据库目录。...以下是从INFORMATION_SCHEMA中检索信息的语句示例: mysql> select table_name,table_type,engine from tables where table_schema...此技术可与其他数据库系统更具互操作性。 例如,Oracle数据库用户熟悉在Oracle数据字典中查询表。 因为SHOW很熟悉并且被广泛使用,所以SHOW语句仍然是另一种选择。...这些限制不适用于InnoDB表; 只有PROCESS权限才能看到它们。 相同的权限适用于从INFORMATION_SCHEMA中选择信息并通过SHOW语句查看相同的信息。...1.5 性能注意事项 INFORMATION_SCHEMA查询从多个数据库中搜索信息可能需要很长时间并影响性能。 要检查查询的效率,可以使用EXPLAIN。

    48530

    PortSwigger之SQL注入实验室笔记

    查询的结果在应用程序的响应中返回,因此您可以使用 UNION 攻击从其他表中检索数据。 数据库包含一个名为 的不同表users,其列名为username和password。...查询的结果在应用程序的响应中返回,因此您可以使用 UNION 攻击从其他表中检索数据。 该应用程序具有登录功能,数据库包含一个保存用户名和密码的表。...使用以下有效负载检索数据库中的表列表:'+UNION+SELECT+table_name,+NULL+FROM+information_schema.tables-- 查找包含用户凭据的表的名称。...查询的结果在应用程序的响应中返回,因此您可以使用 UNION 攻击从其他表中检索数据。 该应用程序具有登录功能,数据库包含一个保存用户名和密码的表。...' UNION SELECT banner,'CC' FROM v$version-- image-20210801023233073 4 检索数据库中的表列表 查找我们的SQL 注入备忘单,找到查询列出数据库中存在的表以及这些表包含的列语句

    3.3K10

    《Oracle Concept》第三章 - 9

    背景: 按照《Oracle Conecpt》的结构一起了解Oracle数据库,这是学习Oracle从入门到精通的基础。...本文主题:第三章《Indexes and Index-Organized Tables》 - Overview of Indexes。...Oracle按照department_id列的顺序存储hr.employees表的数据。他会读取department_id这个升序索引,相应的rowid值会从0开始递增。...降序索引的默认扫描是从最大值到最小值。当检索条件中一些列按照升序,另一些列按照降序的时候,降序索引是很有用的。例如,假设要创建一个last_name和department_id的复合索引, ?...如果用户按照升序检索hr.employees的last_name(A到Z),并按降序检索department IDs(高到低),数据库就能用这个索引来检索数据,避免排序带来的额外消耗。

    50430

    【备份策略】使用逻辑备份辅助物理备份

    在Oracle10g以前的版本中,可以通过指定tables列表的方法,来排除不需要导出的数据表,但是指定固定的列表存在一个最严重的问题是,当数据库中的数据表发生变化时,如增加了新的数据表,则必须重新修改这个列表文件...首先创建一个Shell脚本(本例脚本名为tables.sh),这个脚本用于动态生成一个需要备份的数据表列表文件tables.lst,在查询语句中,就可以排除不需要备份的用户或特定数据表,不需要备份的表应该有限...此处生成的tables.lst文件类似如下格式,这个列表排除了我们不需要备份的数据表: tables=( DBMON.EXTEND_TEMP, DBMON.DBA_IOEXTEND_DAY, DBMON.DBA_IOEXTEND_WEEK...cat /usr/oracle8/backup/tables.lst >> /usr/oracle8/backup/expfull.parfile 这时生成的expfull.parfile文件就包含了所有需要备份的数据表...从Oracle 10g开始,Oracle的EXPDP增加了排除或包含表的特定功能,方便了我们的某些特殊需求。

    3.2K110

    《Oracle Concept》第二章 - 21 (12c内容补充)

    Oracle数据库,这是学习Oracle从入门到精通的基础。...本文主题:第二章《Tables and Table Clusters》 - Overview of Tables,以下是12c内容补充。...SQL执行过程,会跳过不满足检索条件的数据对应的表或索引块,以此达到降低I/O的目的。他能极大地降低表扫描所消耗的I/O和CPU成本。 区映射 区映射是一个独立的访问结构,他会将数据块分到区中。...Oracle将每个区映射实现为一种物化视图的类型。 无论何时在表中指定了CLUSTERING,数据库就会基于指定的聚簇列创建一个区映射。...区映射:示例 示例展示了区映射如何减少包含谓词常量的检索数据集。 假设创建如下的lineitem表 ? lineitem表包含4个数据块,每个数据块含有2行的数据。下表展示了表中共计8行数据。

    1.1K50

    导入导出的两个小错误

    》 《使用exp导出报错EXP-00091》 前两天,从自己的笔记本,Windows环境,负责将远程测试库某个用户的表结构导入另外一个测试库用户的时候,碰见了几个问题。...正在导出数据库链接. 正在导出序号. 正在导出簇定义. 即将导出 DEP 的表通过常规路径.... . 正在导出表 TBLEXP-00091: 正在导出有问题的统计信息。...正在导出数据库链接 . 正在导出序号 . 正在导出簇定义 . 即将导出 DEP 的表通过常规路径... . ....从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。...索引、物化视图等手工分配Extent,看到一种方法,就是利用user_tables,将记录数为0的表,检索出来拼出手工分配Extent的SQL语句, SQL> select 'alter table

    1.5K20

    请注意前方高能有引号!

    这种很可能是从测试库直接导出的。...我们说在一般情况下,Oracle对表名、字段名的大小写是不敏感的,换句话说,即使在SQL中用的小写表名、字段名,Oracle都会自动将他们转成大写,再存储到数据字典中,检索的时候,即使你用的小写,Oracle...实验 我们从实验看下,检索这张表,小写表名,但是不带引号,是可以找到的, SQL> select * from testa; no rows selected 但是当使用引号括起来的小写表名,就会提示...通过user_tables视图,就可以看到这个表名的真实存储,除了testb是小写,其他都是大写,因此要是用引号,就需要注意大小写敏感, SQL> select table_name from user_tables...不同的数据库,对待大小写敏感可能是不同的,以上的情况只是针对Oracle,但是从这个小小的功能,就可以看出数据库软件对待一些问题的处理上,存在不同的角度,另外会留出一些后门,避免特殊情况,这是在应用软件设计中

    55720

    select 1 from dual

    首先,公司用的是Oracle数据库,关于Oracle数据库中的dual表,官方文档说明(The DUAL Table): DUAL is a small table in the data dictionary...DUAL是一个在数据字典里的很小的表,Oracle数据库和用户写的程序可以引用它来保证一个已知的结果。当一个值(比如当前date和time)有且仅需返回一次的时候,这个dual表还是很管用的。...DUAL是一个随着Oracle数据库创建数据字典时自动创建的表。虽然DUAL在用户SYS模式下,但是还是可以被所有用户访问的。...我们可以在Oracle数据库查询: SQL> select * from dual; DUMMY ----- X 好的,现在我们知道了dual这个表是长什么样了,也知道为什么会用这个表了。...SELECT也可以在没有引用任何表,用来检索行。

    1.3K20

    【DB笔试面试398】Oracle数据库中,以下哪个命令可以删除整个表中的数据,并且无法回滚()

    题目 Oracle数据库中,以下哪个命令可以删除整个表中的数据,并且无法回滚() A、DROP B、DELETE C、TRUNCATE D、CASCADE A 答案 答案:C。...执行后会自动提交 3、表上的索引大小会自动进行维护不同点分类DROPTRUNCATEDELETE是否删除表结构删除表结构及其表上的约束,且依赖于该表的存储过程和函数等将变为INVALID状态只删除数据不删除表的定义...,在宏观上表现为DELETE后表的大小并不会因此而改变,所以,在对整个表进行全表扫描时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多日志的产生少量日志少量日志大量日志是否可以通过闪回查询来找回数据否否是是否可以对视图进行操作是否是级联删除不能...在无备份的情况下需谨慎使用方面想删除部分数据行只能用DELETE且带上WHERE子句;想删除表数据及其结构则使用DROP;想保留表结构而将所有数据删除则使用TRUNCATE恢复方法使用回收站恢复,闪回数据库...,RMAN备份、DUL工具等闪回数据库,RMAN备份、DUL工具等闪回查询、闪回事务、闪回版本、闪回数据库等 About Me:小麦苗 ● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用 ●

    5.4K20
    领券