仓酷云
标题:
MSSQL网站制作之在ACCESS 中挪用背景存储历程
[打印本页]
作者:
简单生活
时间:
2015-1-16 22:25
标题:
MSSQL网站制作之在ACCESS 中挪用背景存储历程
这类操作的执行过程是,1)按照新的表定义建立一个临时表tmpa,2)将原表数据拷贝到临时表,3)将原始表改名tmpb,4)将tmpa改名为原表名,5)将tmpb删除。access|存储历程|背景 ACCESS是一个Client/Server的优异前端开辟工具,具有易学易用,界面友爱,开辟复杂,和其他数据库接口天真。可是,它要对大批数据处置时,速率对照慢。深圳供电局现有60万用户,上面有6个业务所,经由过程64KDDN和局相连,假如有一个业务所要对1万用户举行处置的话,要花2~3小时,严峻影响其他营业的展开。以是,当有大批数据必要处置时,不克不及在Client端处置,而必需在Server端处置。但ACCESS和Server端之间多半经由过程ODBC来毗连,如许就增添了挪用背景存储历程的难度。笔者经由过程在实践事情中临时的探索,依据分歧的营业必要,能够用上面三种办法往挪用背景存储历程。
1、Access向背景提交功课,这一个个功课对应一个个的存储历程。在SQLServer6.5中,经由过程TaskManager来创建响应的Task;而在Oracle8.0中,经由过程ManagingJobQueue来创建响应的Job。在Access中,在job_list表中拔出一个功课,这些功课一样平常天天早晨运转一次。这些功课对应的营业通常为必要处置十分大批数据,而及时性又是较低的,在我们的营业中对照典范的例子是天天早晨大批的电费盘算。
2、在Server端创建一些触发器(Trigger),在Access中激活这些触发器。在SQLServer6.5和Oracle8.0中,都是经由过程CreateTrigger来完成。在Access中,依据分歧的营业,经由过程拔出、修正、删除纪录来激活分歧触发器。在我们的营业中一个例子是,当营业职员修正用户的电表读数后,激活盘算电费的触发器,能当即从头盘算该用户的电费。如许子,既能够和批量盘算电费共享统一程序,不必在Access端从头开辟,有能够加速前真个呼应速率。
3、以上二种办法,只能够说是直接挪用背景存储历程,Access还供应一种间接挪用的办法,能够用Access传送查询间接将命令发送到数据库服务器。
创建Access传送查询步骤以下:
(1)在数据库窗口中单击“查询”选项卡,然后单击“新建”按钮。
(2)在“新建查询”对话框中单击“计划视图”选项,然后单击“断定”按钮。
(3)在“显现表”对话框内单击“封闭”按钮。
(4)在“查询”菜单上,指到“SQL语句前提”,然后单击“传送”命令。
(5)在工具栏上,请单击“属性”按钮以显现查询属性表。
(6)在查询属性表中,请设置“ODBC毗连字符串”属性来指定要毗连的数据库信息。能够输出毗连信息:”ODBC;DSN=ntserver0;UID=sa;PWD=;DATABASE=BMS”,或用“天生器”按钮天生。
(7)因存储历程不必前往纪录,以是将“前往纪录”属性设置为“否”。
(8)在“SQL传送查询”窗口中,输出传送查询:execstatistics。Statistics是SQLServer数据库的一个存储历程。
(9)封闭查询,保留查询为:stat_query。
运转传送查询的办法有:
(1)用MicrosoftAccess的宏OpenQuery。
(2)用上面的事务历程:
PrivateSub统计_Click()
DimdbsAsDatabase,qdfAsQueryDef
DimtmqAsDynaset
DimstrSQLAsString
Setdbs=CurrentDb
翻开下面建的传送查询stat_query
Setqdf=dbs.OpenQueryDef("stat_query")
qdf.Execute
Setdbs=Nothing
EndSub
这类办法在SQLServer6.5中完成完整没成绩,在Oracle8.0中不克不及完成,毛病信息为:ORA-00900invalidSQLstatement.因为这类办法不必要一其中间的表往列队或激活背景存储历程,以是它的使用面就很广,但凡必要处置大批数据的营业,都能够放到Server端去向理,如统计报表。
经由过程以上三种办法,办理了Access对大批数据处置速率慢的缺点,年夜年夜加年夜了深圳供电局数据处置才能。
从理论上讲,完全可以为数据表里的每个字段分别建一个索引,但MySQL把同一个数据表里的索引总数限制为16个。
作者:
简单生活
时间:
2015-1-19 11:55
索引视图2k就有。但是2005对其效率作了一些改进但是schema.viewname的作用域真是太限制了它的应用面。还有一大堆的环境参数和种种限制都让人对它有点却步。
作者:
透明
时间:
2015-1-27 23:13
然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情
作者:
分手快乐
时间:
2015-2-5 13:13
SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。)
作者:
因胸联盟
时间:
2015-2-11 21:16
大侠们有推荐的书籍和学习方法写下吧。
作者:
谁可相欹
时间:
2015-3-17 22:08
groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。
作者:
愤怒的大鸟
时间:
2015-3-25 03:41
我个人认为就是孜孜不懈的学习
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2