我有一个项目列表和LINQ查询它们。现在,使用LINQ的延迟执行,后续的foreach循环将只执行一次查询,还是对循环中的每一次执行?
给出这个例子(取自)
// The Three Parts of a LINQ Query:
// 1. Data source.
int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };
// 2. Query creation.
// numQuery is an IEnumerable<int>
var numQuery =
我有一个包含大约16,500个城市的表的数据库,以及该数据库的EF数据模型( database -First)。我用代码将它们预加载到内存中:
Db.Cities.Load()
...then当需要使用它们时,我尝试了以下每个查询:
Dim cities() As String = Db.Cities.Select(Function(c) c.CityName).ToArray
Dim cities() As String = Db.Cities.Local.Select(Function(c) c.CityName).ToArray
第一个查询速度很快(~10ms),但第二个查询运行第一次
我在Visual Studio C#中开发一些小型数据库应用程序已经有一段时间了。我目前使用的是VS2010。直到最近,所有的应用程序都是在存储数据库的同一台计算机上运行的,一切都运行得很好。最近,我不得不开始开发一些应用程序,这些应用程序将在同一本地网络上的一台单独的计算机上运行。
这很简单,但是在运行查询来填充控件时,我遇到了一个问题,比如网格甚至组合框。问题是,如果我的查询正在提取大量数据,则每个控件可能需要15-30秒。我知道这是因为应用程序正在发送我的select查询,等待网络上的所有结果,然后显示信息。问题是我不知道该怎么做。
下面我有一个代码片段(稍微修改一下以使其更有意义)。它
我从数据库中查询学校实体。然后,我尝试通过这样做来获取该学校的学生数量:
var school = context.schools.Where(s=>s.ID == 1).Single();
int cnt = school.students.Count();
但是我看到发送到数据库的查询获取了该学校的所有学生记录,并且计数是在应用程序服务器上完成的。
而下面的代码只是从数据库中查询COUNT(),这是理所应当的:
int cnt = context.students.Where(s=>s.schoolID == 1).Count();
为什么这两种方法会有如此大的不同?第一个查询
我的桌子结构是这样的:
id user_id gift
1 1 1000
但是现在我想把gift移到另一张桌子上,因为礼物可以在不同的日期给用户不止一次。在我的项目中,我在很多地方都使用过$user->gift,我不想更改代码。因此,我想在User模型中创建一个名为getGiftAttribute的方法。在这个方法中,我将得到礼物的总和。但是现在的问题是,每次在我的代码中调用$user->gift时,它都会查询数据库,但我希望它只被调用一次。和以前一样,如果我使用$user->gift,它只会查询一次。那么,如何才能得到gif
我正在尝试编写一个SQL查询,它需要在Sybase和Oracle数据库上都兼容。该查询如下所示:
SELECT *
INTO new_table
FROM other_table
该查询在Sybase数据库上运行良好,但在Oracle数据库上运行不佳。我找到了Oracle的等价物:
CREATE table new_table AS
SELECT *
FROM other_table
有没有办法编写第三个查询来做同样的事情,并且可以在Sybase和Oracle数据库上执行?
在我的数据库中,有10条记录具有几乎完全相同的数据,它们只有一个字段不同(该字段不在查询中),并且当我运行以下查询时
SELECT * FROM friends WHERE user_id= 'MyUserName' AND follow_back = 0 AND until_date= '2009-10-13' LIMIT 12
它只显示了9条记录,有没有人偶然发现了类似的问题?谢谢并等待您的回复!
我正在设置一个简单的SQLite数据库来保存传感器读数。这些表看起来像这样:
sensors
- id (pk)
- name
- description
- units
sensor_readings
- id (pk)
- sensor_id (fk to sensors)
- value (actual sensor value stored here)
- time (date/time the sensor sample was taken)
该应用程序每月将从大约30个不同的传感器捕获大约100,000个传感器读数,我希望尽可能长时间地将
我正在用C#编写一个应用程序,该应用程序将对本地和链接数据库(所有Oracle10g及更高版本)执行查询,并且我希望确保我理解在查询链接数据库时谁在做什么。
例如,对于简单的查询,例如
SELECT * FROM FOO@DB_LINK
本地数据库服务器负责什么?我假设这将使用承载DB_LINK的数据库服务器上的CPU、磁盘和内存,但是这个查询对本地数据库服务器资源有什么影响呢?
如果查询稍微复杂一些,如
SELECT * FROM FOO@DB_LINK F INNER JOIN BAR@DB_LINK B ON F.FOOBAR = B.FOOBAR
整个查询是在承载DB_LINK的服务器
我在Postgres数据库中查询大量结果,并希望使用服务器端游标将结果流式传输到我的客户端。执行此操作时,在执行查询后,游标的rowcount属性现在被设置为-1。我是这样创建光标的:
with db.cursor('cursor_name') as cursor:
有没有办法在从数据库流式传输结果的同时找到我的查询结果的数量?(我可以做一个SELECT COUNT(*),但我想避免这样做,因为我试图抽象化查询周围的代码,这会使API复杂化)。
我收到了一个数据库,该数据库以前位于SQL Server 2008R2上,但刚刚放在SQL Server 2014实例上。自2014年以来,没有在数据库上运行任何类型的维护任务(例如重建索引、更新统计数据等)。
一旦我们运行update statistics作为定期计划维护的一部分,我们就会按照设定的计划进行维护,一些查询的性能已经受到了巨大的打击,以至于一些select语句似乎永远不会完成。
查询中包含一些CASE...WHEN语句,但我不认为会有这样的性能影响。有没有人对可能导致这些问题的原因有什么想法?
我尝试将兼容级别更新为120,因为当数据库第一次出现时,兼容级别是100,但这对性能