我有一个开发数据库,它在重新启动时进入了恢复模式,并且在过去一个小时左右一直在恢复。
我需要要么停止恢复,要么以某种方式杀死它。
我一点也不关心数据库或任何数据,我有部署脚本。
有任何想法吗?
作为开发人员,DBA 通常负责解决数据库级别的性能问题,因此我们在诊断、调优、重构查询等方面没有太多经验。
我正在寻找一个包含大量表、数据、查询、触发器、SP 等的数据库,其中存在故意的性能问题,并希望有一系列练习,您可以在其中尝试识别和解决问题。理想情况下,这将在 MS SQL 服务器上。
有人知道这种事情吗?
我正在解开一些遗留代码,而且我多年来从未见过这个:
Select *
FROM GLAccounts
INNER JOIN GLCharts
ON glaGLChartID = glcGLChartID
LEFT JOIN GLCategories
ON glcGLCategoryID = gltGLCategoryID
INNER JOIN GLDepartments
ON glaGLDepartmentID = gldGLDepartmentID
INNER JOIN GLDivisions
ON glaGLDivisionID = glvGLDivisionID
,GLFiscalYearPeriods --<this comma>
INNER JOIN GLFiscalYears
ON glfGLFiscalYearID = glzGLFiscalYearID
ORDER BY glcGLCategoryID
,glcParentGLChartID
,glaGLChartID
Run Code Online (Sandbox Code Playgroud)
连接有效,但我没有在 ON 子句的任何 T-SQL 语法参考中找到逗号的这种用法。
这里发生了什么事?TIA
目前,我们有一个功能齐全的现有数据库和应用程序。我目前没有能力更改架构。今天,数据库中的每个表都有一个“IsDeleted”NOT NULL BIT 字段,默认值为“0”。当应用程序“删除”数据时,它只是将 IsDeleted 标志更新为 1。
我无法理解的是每个表上的索引应该如何构建。现在,每个查询/加入/等总是实现 IsDeleted 检查。这是我们的开发人员必须遵循的标准。话虽如此,我正在尝试确定是否需要更改每个表上的所有聚集主键索引以包含主键和 IsDeleted BIT 字段。此外,由于每个查询/加入/等。必须实施 IsDeleted 检查,是否适当假设每个索引(非聚集索引)都应包含 IsDeleted 字段作为索引的第一个字段?
我的另一个问题是关于过滤索引。我知道我可以在索引上放置过滤器,例如“WHERE IsDeleted = 0”以减少索引的大小。但是,由于每个连接/查询都必须实现 IsDeleted 检查,这是否会阻止使用过滤索引(因为在连接/查询中使用了 IsDeleted 列)?
请记住,我无法更改 IsDeleted 方法。
表#01 Status:
StatusID Status
-----------------------
1 Opened
2 Closed
3 ReOpened
4 Pending
Run Code Online (Sandbox Code Playgroud)
表#02 Claims:
ClaimID CompanyName StatusID
--------------------------------------
1 ABC 1
2 ABC 1
3 ABC 2
4 ABC 4
5 XYZ 1
6 XYZ 1
Run Code Online (Sandbox Code Playgroud)
预期结果:
CompanyName TotalOpenClaims TotalClosedClaims TotalReOpenedClaims TotalPendingClaims
--------------------------------------------------------------------------------
ABC 2 1 0 1
XYZ 2 0 0 0
Run Code Online (Sandbox Code Playgroud)
我需要如何编写查询才能按预期获得结果?
我从http://www.oracle.com/technetwork/database/enterprise-edition/databaseappdev-vm-161299.html下载了DeveloperDaysVM2016-06-02_13.ova并成功加载到 Virtual Box。
我以“oracle”用户身份登录,可以看到桌面。
在虚拟机中,我打开 Firefox 并导航到:
http://localhost:8080/ords/hrrest/employees/并成功接收到 JSON 格式的员工列表。所以我知道数据库已启动并正在运行。
我唯一的问题是我无法登录到数据库。
我试过:
[oracle@vbgeneric oracle]$ sqlplus oracle
SQL*Plus: Release 12.1.0.2.0 Production on Tue Jul 5 17:32:22 2016
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Enter password: oracle
ERROR:
ORA-01017: invalid username/password; logon denied
Enter user-name:
Run Code Online (Sandbox Code Playgroud)
我的 ORACLE_SID=orcl12c
我如何登录到数据库本身?
我有许多大表,每个表都有 > 300 列。我正在使用的应用程序通过在辅助表中复制当前行来创建更改行的“档案”。
考虑一个简单的例子:
CREATE TABLE dbo.bigtable
(
UpdateDate datetime,
PK varchar(12) PRIMARY KEY,
col1 varchar(100),
col2 int,
col3 varchar(20),
.
.
.
colN datetime
);
Run Code Online (Sandbox Code Playgroud)
存档表:
CREATE TABLE dbo.bigtable_archive
(
UpdateDate datetime,
PK varchar(12) NOT NULL,
col1 varchar(100),
col2 int,
col3 varchar(20),
.
.
.
colN datetime
);
Run Code Online (Sandbox Code Playgroud)
在 上执行任何更新之前dbo.bigtable,将在 中创建该行的副本dbo.bigtable_archive,然后dbo.bigtable.UpdateDate使用当前日期进行更新。
因此,UNION将两个表放在一起并分组按PK创建更改的时间线,按 排序时UpdateDate。
我希望创建一个报告,详细说明行之间的差异,ordered by UpdateDate, grouped by PK,格式如下:
PK, UpdateDate, ColumnName, Old Value, …Run Code Online (Sandbox Code Playgroud)