sqlperformance相关内容
最近我在数据库中发现了几个没有定义聚集索引的表.但是定义了非聚集索引,所以它们在 HEAP 上. 在分析中,我发现 select 语句在非聚集索引中定义的列上使用过滤器. 在这些表上没有聚集索引会影响性能吗? 解决方案 很难比 SQL Server MVP 更简洁地说明这一点 布拉德·麦吉希: 根据经验,每个表都应该有一个聚集的 通常,但并非总是如此,聚集索引应该位于单调
..
我应该什么时候使用KEY、PRIMARY KEY、UNIQUE KEY 和INDEX? 解决方案 KEY 和 INDEX 在 MySQL 中是同义词.他们的意思是一样的.在数据库中,您可以使用索引来提高数据检索的速度.通常在 JOIN、WHERE 和 ORDER BY 子句中使用的列上创建索引. 假设您有一个名为 users 的表,并且您想要搜索姓氏为“Smith"的所有用户.如果没
..
我已经用一个完整的例子来跟踪这个问题,以防我从这个问题中不清楚我的意思. 我制作了一个视图,它连接了大约五个表中的数据.这些表有大量数据,查询运行缓慢.我的问题是,如果我这样做: SELECT * FROM myView WHERE PersonID = 1000 SQL Server 是否“知道我的意思"并自动将该条件传播到视图中的底层连接?这样它就不会为所有人运行,而是在正确的阶段最
..
我正在为 Sybase 数据库编写存储过程.我使用 Sybase Central 16.0 作为我的开发环境.我使用的机器运行 Microsoft Windows Server 2012 R2 标准版,并有 16GB RAM 在 2.8GHz CPU 上运行. 我的存储过程使用一个游标来遍历一个表中的记录,该表有大约 400,000 条记录.每条记录都被增量写入 LONG VARCHAR 变
..
我们有一个 SQL Server 2012 实例,数据库的自动统计设置为 ON: 但是后来我运行了一个查询来检查一些统计数据,并且一些已经有一段时间没有更新了: 为什么会这样?SQL Server 是否更新这些索引未触发的统计信息是否有规则? 我需要关心吗?我怎么知道我是否需要更新它们,或者它们是否给我带来了性能问题? 谢谢! 解决方案 即使您将 Auto update
..
我必须根据 where 子句对某些列进行求和,以便更好地理解我在这里实施临时表 声明@tbl table(a int ,b int,c int)插入@tbl 值(1,2,3)插入@tbl 值(2,2,3)插入@tbl 值(1,3,1)插入@tbl 值(1,2,3)插入@tbl 值(1,2,3) 并且为了找到 a,b,c 的总和 ob 基于 a,b,c 的值;我正在使用以下查询 SELECT
..
我有一个包含 1000 万行的表,我需要将它与另一个表连接并更新所有数据.这花费了 1 个多小时,它使我的事务日志增加了 10+ GB.还有其他方法可以提高这种性能吗? 我相信每次更新后,都会检查索引和约束并记录所有信息.有没有办法告诉 SQL Server 仅在更新完成后检查约束并最少记录更新操作? 我的查询如下.我修改了一些名称,以便于阅读. UPDATE o设置 o.Info1
..
所以,最近一个 DBA 试图告诉我们,我们不能使用 的语法 SELECT X, Y, Z进入#MyTable从你的桌子 在我们的环境中创建临时表,因为该语法会导致在存储过程执行期间锁定 TempDB.现在,我发现了许多详细说明临时表如何工作、执行范围、清理等的内容.但在我的一生中,我看不到因为它们的使用而阻塞的任何事情. 我们正在努力寻找证据,证明我们不应该对所有临时表执行 CREAT
..
我的应用程序针对 sql server 数据库运行查询. 在很多情况下,我可以看到执行计划的好处:例如,我第一次点击按钮 SELECT * from TasksIdUser = 24 AND日期
..
我目前正在通过Microsoft SQL Server 2008 - 数据库开发(MCTS 考试 70-433) 认证.在之前关于组合数据集的一章中,我遇到了EXCEPT(和INTERSECT)命令.一个示例展示了如何使用 EXCEPT 从一个表中获取所有值,而该表在第二个表中没有相关值,如下所示: SELECT EmployeeKey FROM DimEmployee除了SELECT Empl
..
我有 2 张桌子: 描述CONSUMO字段类型空键默认额外idconsumo int(11) NO PRI NULL auto_incrementidkey int(11) NO MUL NULLip varchar(50) 否 未知fechahora 日期时间 NO NULL描述 CONTRATADO字段类型空键默认额外idkey int(11) NO PRI NULL auto_increm
..
我有一个选择(没什么复杂的) 从VIEW中选择* 这个视图有大约 6000 条记录和大约 40 列.它来自 Lotus Notes SQL 数据库.所以我的 ODBC 驱动器是 LotusNotesSQL 驱动器.执行查询大约需要 30 秒.我工作的公司使用 EXCEL 来运行查询并将所有内容写入工作表.由于我假设它逐个单元地写入所有内容,因此过去最多需要 30 - 40 分钟才能完成.
..
我想要做的是始终将数量为 0 的产品发送到已经排序的临时表的末尾而不会丢失当前排序(正如我在以下问题中所述如何将零数量产品发送到 PagedList;?) 我有一个 Sorted 已填充的临时表(按用户选择的内容排序,如 Alphabetic 、价格或较新的产品,排序基于身份 ID): 创建表#DisplayOrderTmp([Id] int IDENTITY (1, 1) NOT NUL
..
我在离商店最近的地方进行了性能查询: 我们有一个表格,其中包含一个国家/地区约50,000条记录(商店/销售点的位置). 每条记录都有location个“地理位置"类型的列 [LOCATION_geo] [geography] 为了提高性能,我使用此语法在该location列上创建了一个空间索引 CREATE SPATIAL INDEX [LOCATION_geoInd
..
例如,我需要使用SQLDataAdapter的Fill()方法填充大量数据表: DataAdapter1.Fill(DataTable1); DataAdapter2.Fill(DataTable2); DataAdapter3.Fill(DataTable3); DataAdapter4.Fill(DataTable4); DataAdapter5.Fill(DataTable5); ..
..
您好,我有下面的SQL查询,该查询平均需要40分钟才能运行,它引用的表中有700万条记录。 我已经通过数据库调整顾问运行了此操作并应用了所有建议,而且我已经在sql的活动监视器中对其进行了评估,因此未建议进一步的索引等。 任何建议会很棒,谢谢您 使用CTE AS ( SELECT r.Id AS ResultId , r.JobId, r.CandidateId, r.
..
我最初发布了以下线程 SQL查询-长期运行/采用CPU资源 我的问题是查询的可维护性,已经解决了这一问题(请参见上一个线程,但总之,我使用了很多ISNULL函数 我的SQL Server设置如下: 并行度的成本阈值 5 最大并行度 0 我的查询仍然需要2:13运行并导致CPU /内存峰值,我有一个功能强大的服务器,例如64GB RAM,因此资源不是问题。请参阅下面
..
我在SQL Azure中有一个数据库,它不需要15到30分钟即可完成一个简单的操作: select count(id) from mytable 数据库约为3.3GB,返回的计数大约为2,000,000,但是我在本地尝试过,并且只用了不到5秒的时间! 我也运行过: ALTER INDEX ALL ON mytable REBUILD 在数据库中的所有表上. 如果有人
..
我正在运行MySql 5.6,我注意到在对服务器进行基准测试(一段时间内并行执行几百个查询)时,在m1.large aws实例上CPU利用率从未超过50%. 我已将thread_cache变量设置为50,将max_connections设置为500.当我从shell执行以下命令时, mysqladmin -u root -ppassword -r -i 1分机| grep Thread
..
注意: 所以正如我所想,真正的问题是因为我正在使用Tag标记的IN子句.更改用于文本搜索的查询部分并没有太大帮助.知道如何改善查询吗? 在服务器上运行时,查询花费的时间太长.在此,Partha S是用户输入的搜索项目.表联系人包含个人信息,标签包含类别名称和ID;和contacts2tags表包含contactid和tagid,其值分别类似于contacts和tag中的id.
..