
| 出版日期:2000-03-20 总期号:406 本年期号:09 |
|
疑 难 解 答
用户:山东省泰安市统计局于海峰先生 专家:微软公司产品经理左洪先生 问题1:如何在站点应用中动态访问sql server和vfp的数据? 回答:在iis的应用中访问数据是通过asp和ado技术来实现的。asp可以支持vbscript等脚本语言调用系统的对象接口,将动态计算的数据或从数据库中获得的结果直接插入到html页面并返回给ie。ado是微软主要推荐的数据访问接口,通过相应的驱动程序,用户可以用相近的方式访问sql server和excel/access/vfp的数据。所以asp和ado是站点应用中可快速订制且应用最广的数据存取技术,二者和原有的c/s技术有很大的一致性。 问题2:如何区分用户及其权限? 回答:sql server中可以定义一组独立的用户以及权限(与windows nt用户无关)。使用者可以在页面中开发登录窗口,把用户信息传到ado的session对象建立连接。此外,全部的数据操作都是基于这个用户及其权限的。另外,复杂一些的权限控制还包括mts部分。 用户:万客隆公司技术部辛利女士 专家:北京好利思特计算机系统集成公司软件工程部曹鹏先生 问题:在oracle数据库中,当系统承载大量的并行访问用户时,如果运行一个占用系统资源较多的应用,比如大型报表查询,系统就会出现错误,“snapshot too old,rollback segment too small”,然后自动退出。尤其是在系统执行自动流程操作时,由于无人值守,一旦发生这样的问题,又不知是哪个步骤出错,整个流程只好重新再来,浪费了大量的资源和时间。请问有什么方法可以解决该故障? 回答:如果我没有分析错的话,该错误的错误号应为ora-01555,以下为在oracle error messages所记录的关于该错误的描述及解决方案: ora-01555 snapshot too old:rollback segment number string with name “string” too small. cause:rollback records needed by a reader for consistent read are overwritten by other writers. action:use larger rollback segments. 根据上述描述可知,系统运行大型应用的时间将占用大量的回滚段(rollback segment),而此时数据库系统没有能力提供足够的回滚段给当前用户,使得数据没有被及时更新,而导致错误出现。用户可以通过下面的语句查询系统可提供的回滚段: select owner,segment_nema,status from dba_rollback_segs; 其中,owner指回滚段的拥有者,status指回滚段的状态。而且在系统运行时,用户还可以通过数据字典v$rollstat查询贸易回滚段的状态。如果发现系统提供的回滚段不足,用户可以根据业务应用的需要建立回滚段。如果业务应用属于大事务,建议为数据库系统建立一个比较大的回滚段;如果业务应用属于小而频繁的事务,建议为数据库系统建立若干小的回滚段,最好做到平均每个用户可以得到20个以上的回滚段。特别需要注意的是,在建立了回滚段之后,要在inits_id.ora文件中将该回滚段名字添加在rollback_segments=()的括号中,这样当数据库启动的时候就可以将回滚段online。 |
|||||||||||||