SQL培训-代码编写技巧

SQL培训-代码编写技巧

ID:44260456

大小:1.06 MB

页数:26页

时间:2019-10-20

SQL培训-代码编写技巧_第1页
SQL培训-代码编写技巧_第2页
SQL培训-代码编写技巧_第3页
SQL培训-代码编写技巧_第4页
SQL培训-代码编写技巧_第5页
资源描述:

《SQL培训-代码编写技巧》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、MSSQL代码编写个案技巧产品一部李知明lizm@handsome.com.cn摘要简单技巧并发保护索引利用查看执行性能事务隔离级别与锁死锁事务嵌套declare@proc_1varchar(64)select@proc_1=‘sql2k..sp_pubgettime’exec@time=@proc1同于exec@time=sql2k..sp_pubgettime优:生成过程时不会有提示信息,如:无法在sysdepends中添加当前存储过程所对应的行,因为缺少该存储过程所依赖的对象‘sql2k..sp_audit_get

2、_serialno’。仍将创建该存储过程。劣:通过sysdepends信息就不能得到过程调用的相关性。调用过程使用过程名变量declare@money_typechar(1),@exchange_typechar(1),@sql_stringvarchar(2000)select@sql_string=‘select*fromrun2k..fsjourwhere1=1’if@money_type<>‘’select@sql_string=@sql_string+‘andmoney_type=@money_type’if@

3、exchange_type<>‘’select@sql_string=@sql_string+‘andexchange_type=@exchange_type’exec(@sql_string)优:灵活拼写查询语句。当条件判断很多时可只将需要判断的条件运行,不触发的条件过滤,提高查询效率。劣:exec中的变量和临时表将不能被传出,可使用结果集的方式传出insert#temp1exec(‘select*fromrun2k..fsjourwherefund_account=1’)exec调用sql语句实现方式一updater

4、un2k..fundsetcurrent_balance=current_balance+1000wherefund_account=1select@post_balance=current_balancefromrun2k..fundwherefund_account=1insertrunk2..fsjourvalues(@pos_balance,…)实现方式二updaterun2k..fundset@post_balance=current_balance=current_balance+1000wherefund_

5、account=1insertrunk2..fsjourvalues(@pos_balance,…)方式二优于方式一,少了一次查询的开销记录数据更新后状态实现方式一declare@serial_nointselect@serial_no=max(serial_no)fromrun2k..fsjourinsertrun2k..fsjourvalues(@serial_no…实现方式二declare@serial_nointupdaterun2k..fsjour_noset@serial_no=serial_no=seria

6、l_no+1insertrun2k..fsjourvalues(@serial_no…方式二优于方式一。优:并发性强(方式二会出现索引冲突的情况)事务小,处理快,效率高(方式二的select操作性能消耗大)劣:多update了一张表流水序号处理declare@client_nameName,@entrust_nointselect@entrust_no=1select@client_name=b.client_namefromrun2k..entrusta,run2k..clientbwherea.entrust_no=

7、@entrust_noanda.fund_account=b.fund_account改为declare@client_nameName,@entrust_noint,@fund_accountintselect@entrust_no=1select@fund_account=fund_accountfromrun2k..entrustwhereentrust_no=@entrust_noselect@client_name=client_namefromrun2k..clientwherefund_account=@f

8、und_account非必要不关联表declare@current_balanceCurrency,@new_balanceCurrencyselect@current_balance=current_balancefromrun2k..fundwherefund_account=1andmoney_type=‘0’

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。