小编Joe*_*lli的帖子

SQL Server DMV - sys.dm_db_missing_index_group_stats - 这些列是什么意思?

我正在修改创建查询以查找缺少的索引.我已经在他们的SQL Server DMV Starter Pack电子书中采用了Red-Gate人员创建的基本查询,并对其进行了一些修改.有几列sys.dm_db_missing_index_group_stats我不知道如何解释.他们是:

avg_total_user_cost
avg_user_impact
Run Code Online (Sandbox Code Playgroud)

根据文档,我发现avg_total_user_cost定义为表示每次执行用户查询时的平均总用户成本.并且,avg_user_impact 将值表示为百分比.它显示了创建索引时可以获得的改进量.

我的查询说应该添加的索引显示2.22平均用户成本和99.82用户影响.这些数字到底意味着什么?这是否意味着添加索引,我可以将关联查询的速度提高99.82%.我不知道2.22可能意味着什么.

谢谢.

sql-server dynamic-management-views

5
推荐指数
2
解决办法
3742
查看次数

Oracle的SQL性能调优很多OR vs IN()

我手边没有"解释计划".你能帮忙说出以下哪项更有效率吗?

选项1:

select ... 
    from VIEW_ABC 
    where STRING_COL = 'AA' 
       OR STRING_COL = 'BB' 
       OR STRING_COL = 'BB' 
       OR ...
       OR STRING_COL = 'ZZ'
Run Code Online (Sandbox Code Playgroud)

选项2:

select ... 
    from VIEW_ABC 
    where STRING_COL IN ('AA','BB',...,'ZZ')
Run Code Online (Sandbox Code Playgroud)

sql oracle performance

5
推荐指数
2
解决办法
1万
查看次数

解决游标问题

我有个问题。我正在使用游标。每次获取最后的记录并打印其数据后,光标都会打印一条附加行。要理解我的意思,请考虑以下示例示例:我只想打印有关10个客户的信息。

USE Northwind
GO

DECLARE myCursor CURSOR 
FOR SELECT TOP(10) ContactName FROM Customers
DECLARE @RowNo int,@ContactName nvarchar(30)
SET @RowNo=1
OPEN myCursor
FETCH NEXT FROM myCursor INTO @ContactName
PRINT  LEFT(CAST(@rowNo as varchar) + '      ',6)+'  '+ @ContactName
SET @RowNo=@RowNo+1
SET @ContactName=''
WHILE @@FETCH_STATUS=0
  BEGIN
        FETCH NEXT FROM myCursor INTO @ContactName
        PRINT + LEFT(CAST(@rowNo as varchar) + '      ',6)+'  '+ @ContactName
        SET @RowNo=@RowNo+1
        SET @ContactName=''
  END
CLOSE myCursor
DEALLOCATE myCursor
Run Code Online (Sandbox Code Playgroud)

现在看一下输出:

1       Maria Anders
2       Ana Trujillo
3       Antonio Moreno
4       Thomas …
Run Code Online (Sandbox Code Playgroud)

sql-server cursors sql-server-2008

4
推荐指数
1
解决办法
5295
查看次数

如何为Union结果添加订单?

在SQL Server 2008中,我们可以使用Union/Unino All将两个结果放在一起,但我想为最终结果添加order by.怎么办?

我想要的是:

select id1 as id, * from ...
Union All
select id2 as id, * from ...
order by id
Run Code Online (Sandbox Code Playgroud)

请帮忙.谢谢.

sql-server sql-server-2008

4
推荐指数
1
解决办法
1万
查看次数

如何设计引用多个(至少 4 个)表的媒体表?

我正在为我的食谱设计一个数据库。我在我的设计中创建了多个表格:书籍、作者、食谱、成分,对于所有这些项目,我想将媒体(图像或视频)链接到所有这些表格中的项目。

我在想这样的设计:

media_id,
rid (primary key of foreign table),
rtype (1=book, 2=author, 3=recipe, 4=ingredient),
media_type(1=image,2=video),
media_url
Run Code Online (Sandbox Code Playgroud)

但是我将如何确保关系完整性?

谢谢

sql database-design relational integrity

4
推荐指数
1
解决办法
1193
查看次数

以逗号分隔的字符串检索SQL关系

我有一个SQL Server 2005数据库,有两个表:Order,LineItem.每个LineItem都有一个名为LineItemID和OrderID的字段.我有一个查询,它获取了我的数据库中的所有订单记录.对于每个Order记录,我想检索与Order关联的LineItemID的逗号分隔列表.

有没有办法在SQL中执行此操作?我不知道该怎么做.

谢谢!

sql sql-server csv sql-server-2005

3
推荐指数
1
解决办法
377
查看次数

事务复制问题

关于事务复制如何处理以下内容,我有以下问题.为了举例,假设数据库'A'正在被复制(通过事务复制)到数据库'B'.

  1. 如果删除数据库'A'中的表,那么表会在'B'中删除吗?
  2. 如果重命名'A'中的表,那么'B'中的表会发生什么?
  3. 如果我们在数据库'A'中的表中删除一列,那么数据库'B'中同一个表中的列会发生什么?
  4. 如果我们重命名数据库'A'中的表中的列,那么数据库'B'中同一个表中的列会发生什么?
  5. 复制存储过程,视图和UDF是可选的吗?
  6. 有没有办法避免由于它是复制的订阅者而在数据库'B'中创建所有存储过程?一个.如果没有,我们至少可以决定创建它们的模式吗?

sql-server replication

3
推荐指数
1
解决办法
1132
查看次数

SQL视图:连接表而不会导致数据在每一行上复制?

每当我创建3个表的视图时,它都会复制所有行上的所有数据.我不知道如何连接这些,以便它显示空值而不是重复.你能直接指出我吗?

这是场景:

  • 表1 =帐户:帐户名称和帐户ID
  • 表2 =属性:属性描述,属性地址和帐户ID
  • 表3 =车辆:车辆制造,车辆型号和帐户ID

数据看起来像这样:

[Table 1= Accounts]
   id name  accountid

   1 Family A  account001
   2 Family B  account002
   3 Family C  account003



[Table 2= Properties]
  id accountid  description address

  1 account001 home california
  2 account001  beach mexico
  3 account002  hideout arizona
  4 account002  getaway nevada
  5 account002  skilodge idaho
  6 account 003  home texas


[Table 3= Vehicles]

 id description make model accountid
  1 green  Acura Integra  account001
  2 blue  Aston Martin Vantage account001
  3 silver …
Run Code Online (Sandbox Code Playgroud)

sql-server join view duplicates sql-server-2008

3
推荐指数
1
解决办法
1万
查看次数

SQL查询以获取另一个表中具有多个行的行数

在我的应用程序中,我有一组可以在列出资源时应用的过滤器,这些过滤器在执行查询之前通过添加WHERE子句等来构建查询.这是使用SQL Server 2008.

我有两个相关的表,一个包含有关资源的一些静态数据,另一个可以包含与该资源有关的任意/可选字段.

第一个表是这样的(表名和字段已更改):

CREATE TABLE Resources (
    ResID       varbinary(28),

    ... extra stuff omitted

    type        integer );
Run Code Online (Sandbox Code Playgroud)

第二个表只有名称/值对和相应的资源ID

CREATE TABLE ResourceFields (
    ResID       varbinary(28) NOT NULL,

    Name        nvarchar(255) NOT NULL,
    Value       nvarchar(1024) NOT NULL);
Run Code Online (Sandbox Code Playgroud)

因此,对于此示例,"ResourceFields"中可能有多行,其中name ='ContactName'表示相同的ResID.

我想要做的是获取'Resources'表中有多个'ContactName'列在'ResourceFields'中且'type'等于某个值的行数.

我想出了这个(不要笑 - 我知道足够的SQL导致问题)

SELECT count(r.ResID) 
    FROM Resources as r 
        INNER JOIN ResourceFields AS rf 
            ON rf.ResID = r.ResID 
                AND rf.name = 'ContactName' 
    WHERE r.type = 1 
    GROUP BY rf.ResID 
    HAVING COUNT(rf.Value) > 1;
Run Code Online (Sandbox Code Playgroud)

但是不是在'Resources'中返回行数(我的测试集中的43)的计数,而是返回所有返回的COUNT(rf.Value)值(即43个单独的计数).

我究竟做错了什么?

sql sql-server group-by

3
推荐指数
1
解决办法
3万
查看次数

用于组合重复记录和求和数量的SQL查询

我有一个excel电子表格,它从SQL中提取记录.我想结合重复记录并总结匹配记录的数量字段.我尝试将select(sum)和group by命令添加到我现有的查询中,但由于没有真正的SQL经验,因此我没有达到目标.我的表看起来像这样:

item no.| item description | qty   | date 
1         red onion          5       20110405 
2         yellow onion       5       20110406 
1         red onion          10      20110405
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像这样:

item no.| item description | qty   | date
1         red onion          15      20110405
2         yellow onion       5       20110406
Run Code Online (Sandbox Code Playgroud)

这是我使用的查询:

SELECT 
     OELINHST_SQL.item_no, OELINHST_SQL.item_desc_1, OELINHST_SQL.qty_ordered, oelinhst_sql.unit_weight,  OEHDRHST_SQL.shipping_dt, OEHDRHST_SQL.inv_dt
FROM
    OEHDRHST_SQL OEHDRHST_SQL,
    OELINHST_SQL OELINHST_SQL
WHERE
    OEHDRHST_SQL.ord_type *= OELINHST_SQL.ord_type AND
    OEHDRHST_SQL.ord_no *= OELINHST_SQL.ord_no AND
    (OELINHST_SQL.prod_cat <> '26' AND
    OELINHST_SQL.prod_cat <> '25') AND
    OELINHST_SQL.loc = 'fs2' AND 
    OELINHST_SQL.item_desc_1 IS …
Run Code Online (Sandbox Code Playgroud)

sql

3
推荐指数
2
解决办法
2万
查看次数