数据库管理员

希望提高数据库技能并向社区中的其他人学习的数据库专业人员的问答

1
我应该在数据仓库中禁用“自动更新统计信息”吗?
我在SQL Server中有200 GB的数据仓库。 对于某些查询,我的执行时间一直很慢;例如12个小时的简单delete查询inner join。 在对执行计划进行了一些研究之后,我使用该WITH FULLSCAN选项更新了查询中涉及的2个表的统计信息。 现在查询将在不到一秒钟的时间内执行,因此看来统计信息不是最新的。 我正在考虑禁用auto update statistics数据库,并UPDATE STATISTICS在加载数据仓库后手动运行。每天晚上,从源ERP系统增量加载数据仓库。 我假设auto update statistics在数据仓库场景中不是真的有用吗?相反,加载数据后手动更新统计信息是否更有意义?

2
在数据集市/仓库中处理时区
我们正在开始设计数据集市/仓库的构建基块,我们需要能够支持所有时区(我们的客户来自世界各地)。从在线(和在书中)阅读讨论中,一个常见的解决方案似乎是在事实表中具有单独的日期和时间维度以及时间戳。 但是,我很难回答的问题是,考虑到我的动态时区要求,日期和时间维度实际上对我有什么好处?时间维度更有意义,但我在日期维度方面遇到了麻烦。日期维度的一般设计方法通常包括属性,例如天名称,星期几,月名称等。我所遇到的问题是,2013年12月31日(星期二)UTC的11:00 PM是星期三,2014年1月1日,位于UTC + 2之后的所有时区。 因此,如果我将不得不对每个查询(和报告)进行所有这些时区转换,那么拥有和存储我可能永远不会使用的这些属性(看起来像)有什么意义呢?有人建议在每个时区都有事实行,但这对我来说似乎很荒谬。我们需要每月能够存储数百万条记录。 其他人则建议有一个时区桥接表,尽管这在一定程度上是有意义的,但似乎也很复杂,需要进行额外的连接才能完成我的客户端应用程序和报告应该可以从某个日期轻松确定的事情(报告主要基于网络)那里有许多库可帮助您转换,显示和格式化日期)。 我唯一能想到的是按日期和小时分组的简便性和可能的​​性能,但实践的糟糕之处在于按日期部分分组(我们正在使用MS SQL,但我们将查询数百万行)或我们应该考虑只是非常简单的日期和时间维度,而在大多数情况下,如星期一之类的大多数文字,时,日,月和年的数字最多不超过几小时,那么在时区发挥作用时就没有多大意义了?

2
由于潜在的数据丢失,无法转换该值。
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 5年前关闭。 首先,让我澄清这不是一个重复的问题,也不是这个问题的潜在重复。我已经尝试过在StackOverflow和DBA Stack Exchange上解决此问题的每个单个变体的所有答案,但是没有任何运气。 在过去的两天里,我一直在努力解决这个问题(每天大约工作7个小时),即使在谷歌搜索问题之后,似乎也没有其他人对我的问题有完全相同的解决方案。 我想做什么? 在SSIS中,我试图从CSV文件中读取内容,并将其中的行插入到OLE DB数据库中。为此,我进行了有史以来最简单的设置,如下所示。 Flat File Source -读取CSV行。 Derived Column -目前不执行任何操作(仅在此处进行实验)。 Data Conversion -目前不执行任何操作(仅在此处进行实验)。 OLE DB Destination -将行存储在数据库中。 当我尝试运行它时,它将停止在我的OLE DB目标上执行,并显示以下错误消息。 输入“ OLE DB目标输入”(51)上的输入列“金额”(187)出错。返回的列状态为:“由于潜在的数据丢失,无法转换该值。”。 失败(Amount)的列当前为类型DT_STR。这似乎是我目前最信任的类型。 我尝试了什么? 我尝试在Flat File Connection失败的列上使用“建议类型”功能。因此,建议使用Single byte signed int数据类型。 在我的平面文件源处停止。 错误是数据转换失败。列“金额”的数据转换返回状态值2和状态文本“由于潜在的数据丢失,无法转换该值”。 我尝试使用Derived Column将列转换为DT_I4。 停在我的派生列。 错误是数据转换失败。列“金额”的数据转换返回状态值2和状态文本“由于潜在的数据丢失,无法转换该值”。 我尝试使用将该Data Conversion列的值转换为DT_I4。 停在我的Data Conversion。 错误是数据转换失败。列“金额”的数据转换返回状态值2和状态文本“由于潜在的数据丢失,无法转换该值”。 我尝试更改DT_STR源和目标中我的值的长度。 根据设置在源或目的地停止。 …


2
如何解决ORA-01031:Windows安装上权限不足错误?
我在Windows 2008 R2 Server上安装了Oracle 11G。我还使用单独的安装介质安装了Oracle Client Libraries。客户端安装后,当我尝试使用以下方法登录数据库时: C:\>sqlplus / as sysdba 我收到以下错误: ORA-01031:权限不足 这在客户端安装之前有效。我的帐户在ORA_DBA群组中。我的帐户也位于管理员组中。ORACLE_SID我的环境变量列表中没有设置。一定要吗?这在客户端安装之前有效,当时我也没有该变量。 UAC处于最低级别,我始终cmd以管理员身份运行。 我sqlnet.ora在文件夹中有一个像这样的文件: C:\app\myaccount\product\11.2.0\dbhome_1\NETWORK\ADMIN sqlnet.ora # sqlnet.ora Network Configuration File: C:\app\myaccount\product\11.2.0\dbhome_1\network\admin\sqlnet.ora # Generated by Oracle configuration tools. # This file is actually generated by netca. But if customers choose to # install "Software Only", this file wont …

2
PostgreSQL:无法将目录更改为/ root
我正在尝试将表planet_osm_polygon从一个数据库复制osm到另一个数据库test。我su postgres并执行了pg_dump。 问题:但是我遇到了错误could not change directory to "/root",Password:提示出现了两次!有没有办法以pg_dump登录身份执行root? root@lalaland:~# su postgres postgres@lalaland:/root$ pg_dump -h localhost "osm" --table "public.planet_osm_polygon" | psql -h localhost "test" --table "staging.planet_osm_polygon" could not change directory to "/root" could not change directory to "/root" Password: Password: 更新 问题2:public即使我通过了flag ,也似乎将表复制到了架构中--table="staging.planet_osm_polygon"。为什么不将其复制到架构staging?

1
如何在SQL Server中查询现有的数据库快照?
我正在尝试创建一个t-sql查询,该查询可以确定给定的数据库是否具有从其创建的任何数据库快照。 例如,如果要创建这样的快照: CREATE DATABASE [DatabaseA_Snapshot] ON (NAME=DatabaseA, FileName='<whatever>') AS SNAPSHOT OF [DatabaseA] 有什么方法可以稍后再次查询该快照的存在吗?我可以看到它显示在sys.databases中,但是我找不到任何可以帮助我确定这是从DatabaseA创建的数据库快照的信息。 SQL Server Management Studio的对象资源管理器将其放置在“数据库快照”文件夹下,因此显然可以通过某种方法将它们与常规数据库区分开。

3
PostgreSQL顺序扫描而不是索引扫描为什么?
大家好我的PostgreSQL数据库查询有问题,想知道是否有人可以提供帮助。在某些情况下,我的查询似乎忽略了我创建的用于连接两个表data和的索引data_area。发生这种情况时,它将使用顺序扫描并导致查询慢得多。 顺序扫描(约5分钟) Unique (cost=15368261.82..15369053.96 rows=200 width=1942) (actual time=301266.832..301346.936 rows=153812 loops=1) CTE data -> Bitmap Heap Scan on data (cost=6086.77..610089.54 rows=321976 width=297) (actual time=26.286..197.625 rows=335130 loops=1) Recheck Cond: (datasetid = 1) Filter: ((readingdatetime >= '1920-01-01 00:00:00'::timestamp without time zone) AND (readingdatetime <= '2013-03-11 00:00:00'::timestamp without time zone) AND (depth >= 0::double …


1
用于LIMIT标准化的ANSI / ISO计划?
当前是否有计划标准化一种限制查询返回的结果数量的最佳方法? 上的堆栈溢出问题是否有MYSQL LIMIT关键字的ANSI SQL替代方法?列出了使用不同语言处理此行为的各种方法: DB2 -- select * from table fetch first 10 rows only Informix -- select first 10 * from table Microsoft SQL Server and Access -- select top 10 * from table MySQL and PostgreSQL -- select * from table limit 10 Oracle -- select * from …

8
无法使用我的Windows帐户启动SqlLocalDB实例
我是管理员,只需运行以下命令: sqllocaldb start v11.0 结果: Start of LocalDB instance "v11.0" failed because of the following error: Error occurred during LocalDB instance startup: SQL Server process failed to sta rt. 事件查看器日志事件ID:528 Windows API调用WaitForMultipleObjects返回了错误代码:575。Windows系统错误消息是:{Application Error}应用程序无法正确启动(0x%lx)。单击“确定”关闭该应用程序。报告在线:3621。 我尝试了另一个(用户和管理员)帐户,它们没有问题。 我卸载并重新安装了SQLLocalDB.msi 2012版本,但没有运气。您有任何想法和解决方法吗?


3
日志表应该获取id字段还是主键?
我有一个日志表,捕获某些文件导出到另一个系统时的日期时间戳。 目前,exportedLog表具有三个字段: id (primary key) messageId (int) exportedDateTime (datetime) 对此进行回顾,我发现该id字段没有任何作用,因为没有该表的联接。该表上唯一起作用的是插入批处理作业,该批处理作业处理消息并将其插入此日志表。 我应该删除该id字段吗? 我是否应该在任何一个主键messageId或exportedDateTime或两者兼而有之?


3
MySQL复制-从属服务器持续落后于主服务器
我将MySQL-5.1.50与主从复制设置一起使用。 大多数情况下,从服务器落后于主机。 当我运行时show processlist;,没有查询花费很长时间。我也启用slow_log了。但是,它找不到任何运行缓慢的查询。 从服务器不断发出警报,提示复制时间比主服务器落后几秒钟。有时,延迟时间会增加。 我如何诊断问题的原因? 我需要紧急帮助,因为此问题在过去20天内一直持续存在。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.