那开发一个大型项目,现在采用的是SQL数据库,我是比较喜欢采用存储过程。但是系统以后可能会移植到其他的数据库上,请问现在是用存储过程好呢还是不用好呢??
现在有点拿不定注意,因为对其他的数据库不是很了解,谁能帮忙解答一下啊??
现在有点拿不定注意,因为对其他的数据库不是很了解,谁能帮忙解答一下啊??
解决方案 »
- 字符串简单问题,懂的来
- 我写的treeview在傲游浏览器展不开,gridview也点不动翻页怎么回事呢
- 十万火急,关于上传测试的问题
- 怎么样点击FiileUpload 控件选择好文件后,判断后缀名是不是.JPG 和.PNG,然后旁边显示打勾的图片X图片
- 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Serv
- 新建了一个类 (*.vb) 文件,为何不能用Server.MapPath了.....
- 只想在网页上显示前面的十条内容,用DATAGRID控件(在线等)!!!!!!!!!
- method not allowed(405)错误
- 讨论下计算GridView总行数的问题
- 关于css+div布局的超难问题!欢迎大家来讨论!!
- 如何实现同时使用windows 和from验证
- 请教!将配置文件放在web.config内用confignation类读取快还是放到xml文件内用xml的方法读取快?
那是不支持的话我可以用标准SQL语句啊
你不会把数据库变成Access吧,换成orcle的可能性很大,他也是有“存储过程”的,移植一下存储过程不就行了吗。但是要对存储过程做好说明 —— 涉及几个表、有哪些地方那个调用等
但是不是象楼上说得有多少操作就写多少存储过程呢,有待探讨。
本人觉得简单的数据操作放在前台用SQL实现,复杂的数据操作呢,使用存储过程。
那么数据访问层不宜使用存储过程(代码复用的好处已不存在)。
可以后台代码(中间组件)中。
同时,注意将数据库接口connectstring做好。
1.执行效率高
2.能有效防止注入攻击
3.容易维护如果要移植,建议严格按照SQl的标准语法来写,不要使用非标准的,如Case语句等。
如果确定以后会移植到Oracle,那还是可以写存储过程的,SQLNavigator还是比较好的调试工具;如果其他,个人认为最好不要写存储过程,调试不方便;当然了话说回来了,既然是大型系统,在架构的时候应该会考虑动态配置数据库执行方式吧^_^我建议在项目开发初期最好写SQL语句,待到稳定了,效率确实有问题,再转成存储过程;
或者只把数据库基本操作写成存储过程(特别是修改、删除操作)。
另一些比较容易的读数据什么的就都写到一个xml 文件里也行啊
如果不愿自己写,微软有个 企业库(Enterprise Library),是个很完整的东西,可以弄过来用用,还有教程
oracle的PL/SQL 与 SQL Server的TSQL语法不同。 不过,都是数据库, 常用的东西是相通的
---------------------
不同意上面的这种说法,见过很多大项目用存储过程,几个大的ASP.NET开源项目和多层示例都用到了存储过程,你应用需求、并发用户、吞吐量大了用存储过程有很多优势,不止是安全和效率高。
当然楼主具体采取什么主要看你自己的需要和实际情况了,但如果数据访问负荷比较高还是建议楼主用存储过程,如果一切都很轻量级,用sql也未尝不可。
---------------------存储过程对数据库服务器的负担大呢?还是SQL语句对数据库服务器的负担大呢?存储过程十预编译的,编译一次就可以了;而SQL每次执行的时候都要编译一遍。而编译并不是一件简单的事情,首先要检查语法是否正确,然后要检查表名、字段名是否正确,还有他们是否是对应的等,然后是对SQL的优化,找出一种最优的一种执行方式。最后才是执行。
可见SQL对于数据库服务器的压力要更大!