我正在写一个应用程序,将使用很多表,我被告知在应用程序中使用存储的特效。是不是要走的路,它太慢了。 有人建议我使用TSQL。到目前为止,我只使用了存储过程。以什么方式使用TSQL不同,我该如何加快速度。事实上,这是快速访问数据还是其他方法?第一次使用TSQL一些基本的指令
0
A
回答
0
传统的使用SP的论点始终是它们被编译,因此它们更快地运行。多年来情况并非如此,但一般而言,SP的运行速度较慢也不是这样。
如果提到的是开发时间而不是运行时间,那么可能会有一些事实,但考虑到您的技能,可能学习一种新方法会比使用SP减慢更多。
如果你的系统使用对象关系映射(ORM),那么SP可能会阻碍你,但是你也不会真的使用T-SQL - 它会为你完成。
1
TSQL是Microsoft和Sybase SQL方言,所以如果您使用SQLServer,您的存储过程将使用TSQL编写。
在大多数情况下,正确编写的存储过程会超出特定查询。另一方面,编码程序需要更多的技能,调试过程相当繁琐。没有看到你的程序就很难提供建议,但是有一些常见的事情会减慢SP。
执行计划在第一次运行时生成,但有时最优计划取决于输入参数。有关更多详细信息,请参阅here。
阻止生成最佳计划的另一件事是使用SP主体中的条件。 例如,
IF (something)
BEGIN
SELECT ... FROM table1
INNER JOIN table2 ...
.....
END
ELSE
BEGIN
SELECT ... FROM table2
INNER JOIN table3 ...
.....
END
应重构为
IF (something)
EXEC proc1; // create a new SP and move code from IF there
ELSE
EXEC proc2; // create a new SP and move code from ELSE there
0
存储过程的编写与T-SQL,所以这是一个有点古怪,有人会做出这样的声明。
丹尼尔是对的,ORM是一个不错的选择。如果你正在做任何数据密集型操作(比如解析内容),我会首先查看数据库。你可能想要对SP做一些阅读,因为速度不是一切......还有其他的好处。这是谷歌从一重击,但你可以做更多的研究自己:
相关问题
- 1. Angular指令只有第一次工作
- 2. 需要一些基本的CSS指导
- 3. 从LLVM IR中清除基本块中的第一条指令?
- 4. 获取关于第一个基本Java程序的一些指针/建议?
- 5. 第一次刮板的一些微移
- 6. 一点帮助一些TSQL
- 7. 了解一些ADC指令
- 8. 第一次使用Promise.all,并有一些问题让JSON显示
- 9. 一些基本的错误
- 10. ng-click不会在第一次点击时激活滚动指令指令,而是第二次?
- 11. Windows命令:基于第一命令
- 12. 第一次使用后命令提示符“忘记”命令
- 13. AngularJS指令ng-repeat第一次显示的元素
- 14. 第一次使用JBoss Netty
- 15. 第一次使用NLog
- 16. 第一次使用hg pull
- 17. 在第一次使用
- 18. 第一次使用SVN
- 19. 第一次使用pChart
- 20. 第一次使用断点
- 21. 第一次使用git
- 22. 第一次使用SWI-Prolog
- 23. 第一次使用FullCalendar
- 24. Im第一次使用Perl
- 25. 角度指令只被调用一次
- 26. 指令只被调用一次
- 27. TSQL只显示第一行
- 28. 如何传递给AngularJS指令一些将被该指令使用的代码?
- 29. 使用警卫分配一些第一
- 30. Cpp一些基本问题
这个网站是更多的与问候的代码,你写的问题或疑问。这个问题会更适合于:http://programmers.stackexchange.com/ –