随笔分类 - PLSQL
摘要:OleDb执行Oracle带自定义函数的SQL深度历险
阅读全文
摘要:公文需要进行超时统计,去除节假日精确到小时的用时。
网上没有找到合适的,就自写了一个。
用法:把特殊的节日和特殊的工作日放在表 t_work_holiday 中。
反正也上不了首页, 自己直接贴代码吧。
阅读全文
摘要:目前已归档公文查询现状
a) 数据库结构不合适。由于需求要求每个用户只能查询自己能查的公文,但标识一个公文可以被哪个公司、部门或个人可查的字段,却不存在,必须使用Like语句来匹配,极大的增大了表的扫描范围,增大了数据库IO、内存开销,降低了查询速度。
b) 查询结果集取出全部数据,直接导致数据库IO、内存、网络资源增加。同时由于在WebService层创建完所有对象后,再进行分页,然后取出指定一个页面的结果集返回,使数据流的使用效率几乎为0。
阅读全文
摘要: 以前我写过“使用参数化和块语句来提高批处理SQL语句的执行效率”,但这明显不如程序员在调试SQL时方便。 原来的调试习惯是把拼好的SQL直接复制到 PLSQL Dev中执行,就能发现问题。 而现在面对这些没有值的块语句,许多人不知道如何去把参数绑定到PLSql中进行执行验证。但对有参数的PLSql进行验证,我们有更好的方法:新建一个“Test Window”进行调试。
阅读全文
摘要: 接触到一个老的项目,里面大量使用OleDbConnection进行数据库操作,在执行SQL块语句时,对它的顺序参数、命名参数很不了解。据说不能使用命名参数,但我这里试验了一下,好像是可以的,只是对参数的顺序还是有要求。看看你能知道下面的输出结果吗?
测试环境:OleDbConnection+Oracle10G
阅读全文
摘要: 在执行SQL语句时,有时我们必须使用Like语句,还需要动态依条件拼出SQL然后执行。此时你可以会因为一点点麻烦而拒绝使用参数化SQL,其实一点也不麻烦。
阅读全文
摘要: 如果你的项目要求你的程序对高达几万条的数据在集中的时间内执行固定序列的操作,且不能完全使用存储过程时而需要使用程序来执行时。会需要这些优化。
我们知道,SQL服务器对一条语句的执行,需要分析、编译、执行这些步骤,通过参数化我们可以对一种命令只分析和编译一次,而执行多次,从而提高效率。在执行时,如果每次提交语句,可以完成多条SQL语句,则可以减少通讯时间,也可以提高效率。
通过 System.Data.IDbCommand.Prepare() 方法,我们可以在第一次执行语句时,分析和编译SQL语句,然后保存这个Command对象,下次使用时,直接设置参数执行。这个方法对Oracle和MsSql Server都有效。
如果执行一批语句,在T-SQL和PLSQL中有一点不一样。
在T-SQL中,多条SQL语句之间,使用分号";"分隔就行。
delete from TableA where id = @id;update TableB set Name=@name where id=@id
而在PLSQL中,则需要
阅读全文