Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用GUI显示SQL查询与新查询的结果?_Sql_Performance_User Interface_Maintainability - Fatal编程技术网

使用GUI显示SQL查询与新查询的结果?

使用GUI显示SQL查询与新查询的结果?,sql,performance,user-interface,maintainability,Sql,Performance,User Interface,Maintainability,我正在开发一个程序,带有一个数据库和一个显示部分数据库的GUI 假设我有一个textblock,其中包含来自数据库的数据(通过查询找到)。如果我想在程序的其他地方使用这个textblock的值,我最好从textblock读取它,还是从数据库中再次调用它 也就是说,在性能和维修性方面,使用GUI显示的SQL查询结果作为来自其他函数的输入,而不是进行新的查询(< P>):这里有一些需要考虑的事项: 过时的数据/并发。如果多个人/进程在同一个数据库对象上工作,那么在GUI中长时间保留相同的数据可能会

我正在开发一个程序,带有一个数据库和一个显示部分数据库的GUI

假设我有一个textblock,其中包含来自数据库的数据(通过查询找到)。如果我想在程序的其他地方使用这个textblock的值,我最好从textblock读取它,还是从数据库中再次调用它


也就是说,在性能和维修性方面,使用GUI显示的SQL查询结果作为来自其他函数的输入,而不是进行新的查询(

< P>):这里有一些需要考虑的事项:

  • 过时的数据/并发。如果多个人/进程在同一个数据库对象上工作,那么在GUI中长时间保留相同的数据可能会导致过时的数据,其中显示的数据是旧的,并且与数据库中的实际数据不同步。更新数据时,这可能会导致错误

  • 耦合。在多个GUI组件之间共享状态可能会导致维护噩梦,因为您无法更改GUI的一个部分而不影响GUI的另一个部分

  • 表演。网络很快。向优化数据库运行的优化查询速度很快。因此,重用查询数据所获得的性能收益不应该太高。参考其他要点,可能不足以证明不从数据库重新获取数据的合理性


如果该值可能过期(因为它们在特定时刻有效,例如天气预报或实时输入),则您可以重新查询(但这可能不是用户所期望的,因为他将使用与他所看到的不同的输入运行操作,则新输入的操作可能错误)。如果它们可能被另一个用户覆盖,那么您可以执行新的查询(并在它们更改时向他发出警告)。简言之:这取决于你的数据是什么,没有一个通用的规则。我同意,但重新蚀刻是一个危险的操作(没有更多的上下文很难说)。考虑一个电厂管理软件。温度过高,自动程序不能足够快地执行。您采取了纠正措施(将流体流量增加5%),但实际上您正在查看10分钟前的数据(现在温度已得到控制,流量已增加20%)。这是一个极端的例子,但如果用户在实际提供另一个输入时考虑提供一个输入(从DB获取)。我的建议是:我没有任何建议,因为我不知道他的具体情况。在你的例子中,不重新蚀刻是危险的,对吗?开始时输入错误?不,我的意思是重新蚀刻(和使用新值)可能会很危险。如果你在为剧院预订座位,那么乐观的锁定可能是最好的,但用户会知道他的数据是旧的。设想一个典型的LOB应用程序来批准/拒绝订单:操作员看到一个项目并决定推迟该订单(因为产品要到下个月才可用)。不幸的是,其他人在那一分钟内添加了一个新订单,它最终会拒绝两个订单(不知道还有第二个订单)。IMO refetch&go有时适用,但一般来说用户应该知道他在做什么(如果发生变化,refetch&warn)。对于实时数据,这可能是有问题的(因为值会不断变化),但这需要根据具体情况来确定(在我之前的电厂示例中,如果我按下“增加流体流量5%”按钮,那么我预计它将增加我看到的值的5%(不是实际值).在这种情况下,如果值已增加5%或更多(然后警告用户),OP可能会重新蚀刻,什么也不做,但请确保不要盲目决定,而不是用户