AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-7326

Greg Bala's questions

Martin Hope
Greg Bala
Asked: 2018-02-14 08:46:47 +0800 CST

通过提交刷新物化视图 FK 到具有非唯一值的表?

  • 0

我想为没有唯一值的表创建 FK。所以我无法创建一个简单的 FK。[澄清一下,父表有重复 - 不要问为什么,不在我的控制范围内]

我尝试创建一个物化视图:

CREATE MATERIALIZED VIEW UniqueView
REFRESH ON COMMIT 
AS SELECT distinct currency from currencies

.. 然后创建一个 FK 到 UniqueView。但是,这有效,我不能使用 ON COMMIT 刷新,因为使用了“distinct”函数。

我希望物化视图始终与基础表保持同步。

还有其他方法可以实现吗?提前谢谢了!

oracle foreign-key
  • 1 个回答
  • 146 Views
Martin Hope
Greg Bala
Asked: 2018-01-27 10:35:40 +0800 CST

无法使用 sql explorer 从 Oracle 11 数据库中列出表(视图、包等),但可以使用 PL/SQL Developer 查看它们

  • 1

我正在连接到 oracle 11 DB。

当我连接 PL/SQL 时,我可以探索所有对象:

在此处输入图像描述

但是,当使用 Oracle SQL Developer 访问同一个数据库时,展开不同的对象会导致空列表

在此处输入图像描述

任何想法为什么会这样?

oracle-sql-developer plsql-developer
  • 1 个回答
  • 1752 Views
Martin Hope
Greg Bala
Asked: 2017-12-15 05:43:59 +0800 CST

通过 oracle developer 17 连接到公司网络上的 oracle 11

  • 0

抱歉这个绝对的 oracle noob 问题:

我在一个使用集成/活动目录身份验证的环境中,开发人员可以通过旧版本 9 PL/SQL Developer 访问 oracle 数据库:

在此处输入图像描述

单击“确定”进入数据库

我正在尝试通过 Oracle SQL Developer 17 连接到同一个数据库,登录屏幕更加复杂: 在此处输入图像描述

我在这里输入什么?我进行了广泛的搜索,但像我这样的 oracle 菜鸟的资源很少。

oracle oracle-11g
  • 3 个回答
  • 400 Views
Martin Hope
Greg Bala
Asked: 2016-09-27 06:56:24 +0800 CST

在 sql server 2012 上多久运行一次重组索引和更新统计维护任务?

  • 2

我知道如果没有更多细节,这是一个很难回答的问题,但我希望有一些通用的指导方针或经验法则,或者可能是如何确定最适合我的数据库集的方法。

我有一个包含大约 100 个数据库的系统,自 8 年前创建以来,我每天晚上都会对所有数据库进行索引重组、统计更新、检查完整性任务。大多数数据库的大小约为 1GB,一个是 10GB

随着数据库的增长,这个任务花费的时间越来越多,现在对性能产生了不利的影响,我没有很好的时间来处理性能影响。

我害怕只是关闭这个任务,我正在寻找一些指导 - 我什至不知道做这样的维护任务是否有必要!我应该做这样的维护工作吗?多常?

谢谢!

maintenance sql-server-2012
  • 1 个回答
  • 3050 Views
Martin Hope
Greg Bala
Asked: 2015-10-23 05:57:11 +0800 CST

简单但有问题的更新查询

  • 3

我有一个相当简单的更新/查询,多年来一直让我很伤心。

最简单的形式是:

update VillageSemaphore
set TimeStamp = getdate() 
        where VillageID in (@X, @Y)

但是,在某些存储过程中,查询还包括此“OR VillageID in (...)”子查询

update VillageSemaphore
set TimeStamp = getdate() 
        where VillageID in (@X, @Y)

        OR VillageID in  ( -- this subquery can return many rows, many different VillageIDs
        select VSU.SupportingVillageID 
        from VillageSupportUnits VSU
        where SupportedVillageID = @Z       
            and VSU.UnitCount <> 0
            )

请注意,此 OR 可以返回多个 villageID,而不仅仅是一个 @Z。此版本的查询有时会运行很长时间。没有索引重建,统计重建有帮助。当删除并重新填充 Villages 表的内容时,它运行缓慢。在这种情况下,行数将只有几百行。我一直不明白为什么会这样,并且一直忍受着它。

但是,最近我正在查看查询计划:

在此处输入图像描述

与实际行数 (2) 相比,估计行数 (4000) 似乎很大。

我创建了这个统计数据,但它没有帮助

CREATE STATISTICS [stat_x] ON [VillageSU]([UnitCount], [VillageID])

所以我的问题:任何建议为什么会这样以及我可以做些什么来改进它?

作为参考,该表如下所示:

CREATE TABLE VillageSemaphore(
    VillageID    int         NOT NULL,
    TimeStamp    datetime    NOT NULL,
    CONSTRAINT PK97 PRIMARY KEY CLUSTERED (VillageID)
)

更新:按照 srutzky 的建议尝试这个版本的查询

CREATE TABLE #VillagesToLock (VillageID INT NOT NULL);
insert into #VillagesToLock values (@X)
insert into #VillagesToLock values (@Y)
insert into #VillagesToLock select VSU.SupportingVillageID 
        from VillageSupportUnits VSU
        where SupportedVillageID = @Z       
            and VSU.UnitCount <> 0

update VillageSemaphore set TimeStamp = getdate() 
    where VillageID in (select VillageID from #VillagesToLock)

这是目前的结果:http ://screencast.com/t/96KafTPoNGM - 查询计划确实看起来更好。

查询成本也从 3% 下降到 1%,这看起来不错。3% 可能看起来不多,但这是一个 2500 行的存储过程!

问题:我无法将#VillagesToLock.VillageID 设为 PK,因为它不是唯一的。我希望 #VillagesToLock 通常不超过 2-10 行。VillageSemaphore 可能有数千行。在这种情况下是否值得在#VillagesToLock 上建立索引?

11 月 24 日更新 我已经实施了这个替代方案 在此处输入图像描述

查询计划确实看起来好多了 在此处输入图像描述

感谢所有花时间帮助我的人!

sql-server sql-server-2012
  • 3 个回答
  • 217 Views
Martin Hope
Greg Bala
Asked: 2014-04-29 06:56:38 +0800 CST

将维护计划复制到不同的服务器

  • 21

有没有办法将维护计划从一个 SQL Server 2012 复制到另一个?两台服务器不能同时通过同一版本的 Management Studio 访问(在不同的网络上)。

sql-server-2012 maintenance-plans
  • 3 个回答
  • 55399 Views
Martin Hope
Greg Bala
Asked: 2013-12-16 06:50:10 +0800 CST

SQL Server 2012 32 位 - 启用锁定页面是否会允许它使用更多内存?

  • 4

我最近发现,一台服务器安装了 32 位的 SQL Server 2012 而不是 64 位,现在内存不足。

我可以让这个 32 位安装使用锁定页面使用更多内存吗?

我对此了解不多。我已经阅读了这个http://support.microsoft.com/kb/2659143/en-us我仍然不清楚这是否有帮助,需要做什么等

sql-server-2012 memory
  • 1 个回答
  • 128 Views
Martin Hope
Greg Bala
Asked: 2013-12-15 15:12:50 +0800 CST

如何从 32 位 SQL Server 安装迁移到 64 位?

  • 6

生产服务器意外安装了 SQL Server 2012 32 位版本,而它需要 64 位版本。

如何最好地解决这个问题?

是否可以简单地从 32 位升级到 64 位版本?

我应该只安装 64 位版本的 SQL Server 2012 的新实例,然后简单地恢复备份吗?

installation sql-server-2012
  • 2 个回答
  • 15938 Views
Martin Hope
Greg Bala
Asked: 2013-12-15 15:02:22 +0800 CST

64 位 SQL Server,总虚拟地址空间为 4GB。这怎么可能?

  • 0

我的 SQL Server 2012 标准版,64 位,总虚拟地址空间为 4GB。这是为什么?

这是一个 64 位安装:打印@@VERSION:

Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (Intel X86) 
    Dec 28 2012 19:06:41 
    Copyright (c) Microsoft Corporation
    Standard Edition on Windows NT 6.2 <X64> (Build 9200: ) (WOW64)

仅4GB的虚拟空间

select total_virtual_address_space_kb from sys.dm_os_process_memory 
4194176

(sys.dm_os_process_memory http://screencast.com/t/2PN2PDQYpt的完整结果)

sql-server-2012
  • 2 个回答
  • 554 Views
Martin Hope
Greg Bala
Asked: 2013-12-05 13:03:53 +0800 CST

由于 LinkedServer 导致的 SQL Server 2012 CPU 峰值 - 如何找到有问题的查询?

  • 4

作为另一个问题(SQL Server 2012 性能问题(可能是由于链接服务器))的一部分,我发现 CPU 峰值与接收的字节数峰值直接相关,这让我相信这可能是由于链接服务器.

环境

2台服务器,一台服务器通过链接服务器访问第一个数据库,关于漂亮的图表,请参阅SQL Server 2012性能问题(可能是由于链接服务器)

在此处输入图像描述 在此处输入图像描述 CPU 峰值与 Bytes Received Spike 直接相关

问题 如何找到可能导致它的查询?

我们运行的查询类型

我已经完成了我们所有的存储过程,并且它们都进行了优化。以下是我们执行的链接服务器访问类型:

从远程表中选择一个值

select @userid = userid from FBGC.FBGCommon.dbo.players where playerid = @playerid

执行存储过程,返回最多几百行的结果集

exec FBGC.Fbgcommon.dbo.qPlayersFriends @PlayerID

执行返回一个值的存储过程

exec @HasEnoughCredits = FBGC.FBGCommon.dbo.qDoesPlayerHaveEnoughCredits @PlayerID, @Cost

从删除表中删除几行

delete from FBGC.FBGCommon.dbo.InactivePlayersToBeWarned where PlayerID = @AccountOwnerPlayerID

更新远程表中的一行,或向远程表中添加一行

update FBGC.FBGCommon.dbo.users set XP = XP + @XPForTitle where userid = @userid
insert into FBGC.FBGCommon.dbo.UserXPHistory (userid, time, XPReceived, XPFromTypeID, XPFromRealmID) values (@UserID, GETDATE(), @XPForTitle, 1, @ThisRealmID)

我相信所有这些都经过优化,但是,我们似乎正在通过链接服务器加入表!


一些有趣的等待统计数据,我不知道如何解释。从http://www.sqlskills.com/blogs/paul/wait-statistics-or-please-tell-me-where-it-hurts/查询

我在 CPU 峰值期间得到了这个: 在此处输入图像描述

当没有 CPU 峰值时我得到这个: 在此处输入图像描述

这些等待时间在带有 DB2 的服务器上,SQL 2012 服务器访问另一个运行 sql server 2008 的服务器上的远程数据库(有关图表,请参阅SQL Server 2012 性能问题(可能是由于链接服务器)


重新启动 sql server 帮助 - 在很长一段时间内没有 CPU 峰值。

我们还发现,重新启动 SQL Server 会有所帮助 - 我们可能会在几个小时内出现间歇性峰值,一个小时多次,然后在重新启动后,一个小时或更长时间没有峰值。


进程浏览器

正如@EdwardDortland 所建议的那样,我使用进程资源管理器查看在减速期间哪个线程消耗最多的CPU

不幸的是,没有一个线程是罪魁祸首——在 CPU 峰值期间,所有线程都会消耗更多的 CPU。尽管在 CPU 峰值期间我看到更多的线程以红色突出显示(意思是已删除) - 不知道如何解释这一点。

CPU 峰值之前的线程数 在此处输入图像描述

CPU 峰值期间的线程 在此处输入图像描述

sql-server sql-server-2012
  • 2 个回答
  • 2227 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve