Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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
Sql 数据库应该有多大才能用30分钟进行查询_Sql_Sql Server_Performance_Linq_Select - Fatal编程技术网

Sql 数据库应该有多大才能用30分钟进行查询

Sql 数据库应该有多大才能用30分钟进行查询,sql,sql-server,performance,linq,select,Sql,Sql Server,Performance,Linq,Select,我们有几个标准化的表,每个表平均包含250万行。然后是一个带有连接的select查询。执行需要30分钟以上。db服务器运行在具有9Gb RAM和四核Xeon处理器的机器上。 因此,由于我从未处理过大数据,我试图了解这是一个糟糕的查询问题还是一个硬件问题?任何信息都值得赞赏根据我的经验,30分钟的查询严格来说不是数据库大小的结果 在这种情况下,根据您考虑的查询时间,有许多变量。您指的是用户端感知的执行时间(例如:网页请求或应用程序响应时间)?或者您是指直接(通过DB管理器或命令行)在数据库上执行的

我们有几个标准化的表,每个表平均包含250万行。然后是一个带有连接的select查询。执行需要30分钟以上。db服务器运行在具有9Gb RAM和四核Xeon处理器的机器上。
因此,由于我从未处理过大数据,我试图了解这是一个糟糕的查询问题还是一个硬件问题?任何信息都值得赞赏

根据我的经验,30分钟的查询严格来说不是数据库大小的结果

在这种情况下,根据您考虑的查询时间,有许多变量。您指的是用户端感知的执行时间(例如:网页请求或应用程序响应时间)?或者您是指直接(通过DB管理器或命令行)在数据库上执行的原始查询

如果您确实是直接在数据库上引用原始查询的执行时间,那么我确定瓶颈的下一步是使用SQL解释修饰符,或者像HeidiSQL这样的应用程序来对查询进行基准测试,并获得查询组件的细分

我的猜测是,您没有正确地使用索引,数据库必须创建临时索引和表,并针对这些索引和表执行。这是我下意识的假设


我们截短的开发数据库对100-300万行的表运行复杂的查询(它包含我们生产数据库的一小部分,并且仍然以16 Gig的速度运行),虽然我们有时会达到约15分钟,但这些都是巨大的查询。

在对软件有信心之前,与硬件无关。
用解释计划详细信息发布您的查询。

我猜是错误的查询,发布解释计划和您正在运行的查询以及表的架构。补充说明,250万条记录不是大数据,除非您是1962年的时间旅行者。同意@Woot4Moo-听起来肯定像是一个查询问题。请发布你能发布的任何信息。当然你在查询中有一个很好的优化。即使有250万,30分钟似乎也太多了。这就像问“100英里需要多长时间?”而不知道速度(查询),这是不可能的。