数据库访问的时候,用存储过程好,还是在代码中写SQL语句好

wxz280973534 2008-12-01 01:28:03
在用ado.net访问数据库的时候,你可以把sql语句直接作为cmd参数,
也可以把sql语句保存成存储过程存在数据库中,然后用cmd调用这个存储过程的名字,两个方法都行
但是我不明白,这两个方法的利弊.
还有如果是把SQL语句写在程序中,那么将来我发布程序以后,感觉要修改SQL语句,那么我就直接在程序中修个
让后将修改好的C#程序发布就好了,那如果我是写成存储过程保存在数据库中,那要如何更新?
...全文
549 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanrabbit163 2008-12-01
  • 打赏
  • 举报
回复
肯定是要看具体的需求了,一般情况下一条SQL语句不能完成功能的用存储过程,经常用到的SQL语句用存储过程(比如验证用户身份的等).其他的SQL
louis4592 2008-12-01
  • 打赏
  • 举报
回复
用存储过程好 ,因为它已经预编译过了。程序不用再检查它的语法有没有错误。执行比SQL语句快。
但就像楼上说的,多了的话会很麻烦。
所以还得看具体情况而定。LZ 你认为呢?
yuloukong 2008-12-01
  • 打赏
  • 举报
回复
UP
wangping_li 2008-12-01
  • 打赏
  • 举报
回复
我用的就全是存储过程,没用SQL,哪怕sql句语我也保存在存储过程中
我还是觉得存储过程好些,像有的要动态拼条件的直接传一个参数就行了,也方便的
cpio 2008-12-01
  • 打赏
  • 举报
回复
小东西直接写也没什么,这样快

如果公司人力足够,可以用存储过程

不过现在很多框架都是把SQL语句写在外面的配置文件里面,也未必要用存储过程,
greatverve 2008-12-01
  • 打赏
  • 举报
回复
楼主提问很实在,像我,呵呵。
用存储过程确实有很多事情需要处理,比如你得改数据库,如果用户已经使用了,
如果你不直接操作数据库,只能用覆盖的方法,那么用存储过程是很麻烦的。
由于我写的程序,一般是业务逻辑复杂,很多时候不用存储过程无法实现,
所以不得不用,一般的增删改查,直接用sql语句就行了,注意用参数形式的,
防止注入。
fuzhenyu999999 2008-12-01
  • 打赏
  • 举报
回复
Fus371x 2008-12-01
  • 打赏
  • 举报
回复
用存储过程的好,要修改sql语句时,如果sql语句写在程序里,就得改程序,得重新编译.如果采用存储过程,则只要修改对应的存储过程即可.
在数据访问量大,而且访问次数多时,使用存储过程还有速度上的优势.
存储过程较一般的sql语句还有安全上的优势等等.
  • 打赏
  • 举报
回复
在用ado.net访问数据库的时候,你可以把sql语句直接作为cmd参数,
也可以把sql语句保存成存储过程存在数据库中,然后用cmd调用这个存储过程的名字,两个方法都行
但是我不明白,这两个方法的利弊.

答:前面两个效率上基本一样的,你写成了存储过程,要按存储过程调用,需要指定sql是存储过程,否则就是sql,效率前者要高很多。这个上周五正好做了个测试,测到这个区别了。

还有如果是把SQL语句写在程序中,那么将来我发布程序以后,感觉要修改SQL语句,那么我就直接在程序中修个
让后将修改好的C#程序发布就好了,那如果我是写成存储过程保存在数据库中,那要如何更新?

答:把sql写在程序代码里的做法不推荐,修改一个sql语句导致要发布整个程序,这是很危险的,也很烂,但去修改一个存储过程,风险就小多了。而且发布起来也简单,不需要停止程序,只需把对应的存储过程alter就 可以了。
kingcsx666 2008-12-01
  • 打赏
  • 举报
回复
理论上面说存储过程好,

但也不一定都用存储过程,写起来麻烦,每个表都对应几个存储过程,一千个表还了得啊

看情况用

存储过程,直接都数据库里面修改啦,还方便点
内容概要:本文针对区域综合能源系统(IES)在多能源耦合与需求响应机制下的优化调度问题,提出了一种基于Matlab实现的双层优化调度模型,旨在提升系统运行的经济性与能源利用效率。上层模型以系统综合运行成本最小化为目标,统筹电、热、气等多种能源的生产、转换与存储设备(如CHP、锅炉、储能系统等)进行优化调度;下层模型引入价格型需求响应机制,通过电价信号引导用户调整用能行为,实现负荷的削峰填谷与供需互动。上下层模型通过迭代交互形成博弈均衡,充分体现了能源供给侧与用户需求侧之间的协调关系。研究还提供了完整的Matlab代码实现方案,涵盖模型构建、变量定义、约束处理及Yalmip+Cplex求解流程,便于科研人员复现核心期刊级别的研究成果。; 适合人群:具备电力系统、能源系统建模基础,熟悉Matlab编程与优化理论,从事综合能源系统、需求响应、低碳调度、微网运行等方向研究的硕士、博士研究生及科研人员。; 使用场景及目标:① 复现并深入理解核心期刊中关于双层优化在综合能源系统中的典型应用;② 掌握双层博弈建模思想及其在能源调度中的实现方法;③ 学习基于Yalmip工具箱调用Cplex求解器的高级编程技巧;④ 为开展多能协同、需求侧管理、鲁棒优化等相关课题提供可扩展的代码框架与技术储备。; 阅读建议:建议结合所提供的Matlab代码逐模块分析上下层模型的数学表达与求解逻辑,重点理解KKT条件转化、大M法线性化等关键技术环节,推荐使用Yalmip+Cplex环境进行调试与验证,并可进一步拓展至不确定性优化、多时间尺度调度及分布式求解等前沿方向。
内容概要:本文研究了基于中心辐射模式的无人机包裹递送系统,融合K-means聚类算法与遗传算法,利用Matlab实现配送中心选址与路径规划的联合优化。通过K-means算法对客户节点进行聚类分析,确定最优配送中心位置,构建辐射状配送网络;随后采用遗传算法对各簇内无人机配送路径进行优化,综合考虑路径长度、飞行能耗、地形威胁与转弯成本等因素,以最小化整体配送成本并提升物流效率。该方法有效解决了大规模、地理分布复杂的无人机物流配送中的选址—路径耦合问题,适用于城市末端配送及偏远地区应急物流场景,具备较强的工程应用价值与仿真验证能力。; 适合人群:具备一定Matlab编程基础,从事物流优化、无人机应用、智能算法研究的科研人员及研究生。; 使用场景及目标:①解决无人机物流系统中配送中心选址与多无人机路径规划的协同优化问题;②提升“最后一公里”配送效率,降低运营成本与能源消耗;③为智能城市物流、应急救援物资投送等实际场景提供算法支持与仿真平台。; 阅读建议:建议结合Matlab代码动手实践,深入理解K-means与遗传算法的集成机制,重点关注目标函数构建、约束条件设置、参数调优过程及结果可视化方法,便于将该框架迁移至其他路径优化与设施选址的实际工程项目中。

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧