有哪些好的资源可用于理解主要引擎上的数据库调优并提升您在该领域的知识?
这个问题的想法是收集总是存在的大量资源,以便人们可以拥有良好的,同行认可的资源的"一站式"知识商店.
一般SQL
MySQL的
神谕
MS SQL Server
Sybase SQL Anywhere
JDBC
在尝试理解SQL语句的执行方式时,有时建议您查看解释计划.在解释(理解)解释计划时应该经历的过程是什么?应该突出的是,"哦,这真的很棒吗?" 与"哦不,那不对."
我有一个查询做类似的事情:
SELECT FieldX, FieldY FROM A
WHERE FieldW IN (108, 109, 113, 138, 146, 160,
307, 314, 370, 371, 441, 454 ,457, 458, 479, 480,
485, 488, 490, 492, 519, 523, 525, 534, 539, 543,
546, 547, 550, 564, 573, 629, 642, 643, 649, 650,
651, 694, 698, 699, 761, 762, 768, 772, 773, 774,
775, 778, 784, 843, 844, 848, 851, 852, 853, 854,
855, 856, 857, 858, 859, 860, 861, 862, 863, 864,
865, 868, 869, 871, 872, …Run Code Online (Sandbox Code Playgroud) 我想要在主表位于另一个表中的表中选择行.我不确定我是否应该在SQL Server 2005中使用JOIN或IN运算符.这两个SQL查询与大数据集(即数百万行)之间是否存在显着的性能差异?
SELECT *
FROM a
WHERE a.c IN (SELECT d FROM b)
SELECT a.*
FROM a JOIN b ON a.c = b.d
Run Code Online (Sandbox Code Playgroud) 我听说使用IN子句会影响性能,因为它没有正确使用索引.见下面的例子:
SELECT ID, Name, Address
FROM people
WHERE id IN (SELECT ParsedValue FROM UDF_ParseListToTable(@IDList))
Run Code Online (Sandbox Code Playgroud)
使用下面的表格获得这些结果会更好吗?
SELECT ID,Name,Address
FROM People as p
INNER JOIN UDF_ParseListToTable(@IDList) as ids
ON p.ID = ids.ParsedValue
Run Code Online (Sandbox Code Playgroud)
这取决于您使用的SQL Server版本吗?如果是这样哪些受影响?