数据库管理员

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

2
用于存储标志数组(位图/位数组)的数据类型
我需要为表的每个记录存储一个位数组,以支持以下操作: 测试是否设置了一个位,并设置了一个位(使用SQL) 使用ADO 2.8(而非ADO.NET)查询和设置值 索引编制(为了从“覆盖索引”功能中受益) 此数组中要存储的最大位数是固定的,但可以超过32。也就是说,简单的int列并不总是有效。 到目前为止,我的选择是: 使用多个int列 使用bigint(只要位数小于等于64即可工作) 使用二进制 ? 第一个选项可以工作,但是需要在访问数据的代码中进行大量重构。第二种选择只是暂时的解决方案,到目前为止,根据我的搜索,我不太确定ADO是否可以与bigint一起使用。我没有使用binary的经验,并且不知道其他任何选项。 根据要求,您会选择哪种数据类型?


3
从未使用过该技术的人可以使用哪些规范的NoSQL资源?
我对NoSQL技术越来越感兴趣,并且可以阅读有关SE的工作原理和可用的不同产品的几篇文章。 但是,我想知道是否有一些规范的参考文献,书籍或文章,例如我们可以在研究论文中找到这些参考文献,书籍或文章,并且可以阅读这些书籍,文章或文章以对以下内容有一个很好的概述: 优点/缺点是什么? 怎么运行的?
15 nosql 

4
使用包含空格,分号和正斜杠的SQLPlus执行脚本
有时候,我会获得一个脚本,该脚本可以在SQL Developer或Toad中正常运行,但是需要修改才能从SQL * Plus成功运行。这是最坏的情况示例,其中包含多个带有空行,分号和正斜杠的语句: INSERT INTO t1 VALUES ('a ; / '); INSERT INTO t1 VALUES ('b ; / '); DELETE FROM t1 WHERE c1 = 'c ; / '; 由于各种原因,这些语句需要从SQL * Plus运行。用简单的...即可轻松解决空白行。 set sqlblanklines on 我知道sqlterminator可以更改和/或关闭它们,但是两者都需要修改代码,前者在不解决问题的情况下解决了问题,也没有解决嵌入式斜杠问题。 最好的答案是一种通过以某种方式更改环境(如sqlblanklines所做的那样)而无需修改即可运行这些语句的方法。如果这不可能,那么也许可以通过编程方式修改脚本。我正在尝试避免手动更改。


4
发布的概念架构有多少安全风险?
我向政府机构的信息系统索要概念性方案以进行研究。我的请求已被拒绝,原因是存在安全风险。 我确实没有丰富的数据库经验,所以我无法验证该说法。公开您的架构真的有那么大的安全风险吗?我的意思是,它们是非常抽象的,与硬件和软件实现分离。对于攻击者如何利用概念性模式的解释将不胜感激。谢谢。

4
大索引INCLUDE字段将如何影响系统性能?
这个问题是关于SQL Server索引性能的,其中包含a varchar(2000)作为INCLUDE索引。 我试图在缓慢而不稳定的数据库应用程序中提高性能。在某些情况下,数据是通过大VARCHAR字符串来访问的,与查询包括像multple字符串操作SUBSTRING(),SPACE()和DATALENGTH()。这是访问的简化示例; update fattable set col3 = SUBSTRING(col3,1,10) + '*' + SUBSTRING(col3,12,DATALENGTH(col3)-12) from fattable where substring(col3,10,1) = 'A' and col2 = 2 模式如下所示: CREATE TABLE [dbo].[FatTable]( [id] [bigint] IDENTITY(1,1) NOT NULL, [col1] [nchar](12) NOT NULL, [col2] [int] NOT NULL, [col3] [varchar](2000) NOT NULL, ... 定义了以下索引,并在大文本列上覆盖了一个字段。 CREATE NONCLUSTERED INDEX …

2
在SQL查询(或视图定义)中术语“投影”指的是什么
在Oracle的文档的查询优化器,在视图合并,我发现下面的信息 视图合并优化适用于仅包含选择,投影和联接的视图。也就是说,可合并视图不包含集合运算符,聚合函数,DISTINCT,GROUP BY,CONNECT BY等。 (强调我的) 但是,我只能猜测这种预测实际上是指什么。
15 oracle  select 

2
司法删除/更新数据
我需要从甲骨文中取证删除数据。如果我只是删除它,我的理解是数据将实际上仍然存在于数据文件中,直到重新使用该空间为止。我不在乎重做/归档/撤消空间,那些空间会很快老化。 有什么方法可以确保实际上已从数据文件中删除数据?
15 oracle  security 

2
问卷数据库设计-哪种方法更好?
我有一个长长的html页面,几组问题分成小部分(一页中大约有15个子部分),问题总数约为100个问题:输入,选择,复选框,单选按钮,文本区域,和文件上传。一个问题可以包含许多答案,这些答案可以从一组复选框,一组选择列表,一组多重选择中获得,也可以全部组合成一个答案。我以为我会在下面使用这种数据库设计,但是最近发现这毕竟不是一个好方法。 一位客户只能回答一组问题:每100个问题一位客户。 对于旧方法,我不在数据库中保留问题,而是在PHP编码中将其分配为常量。问题是我必须比较PHP中的问题,以使其与数据库中的答案同步。如果从PHP更改/删除/移动了一个问题,我肯定会迷失它与问卷数据库中的答案。更好的解决方案? 我能否将从多个元素中获得的多个答案作为一个答案保存在一个字段中?如何检索此字段并再次显示它以供客户在表单上查看? 我应该选择以下哪个选项? 选项1:旧方法(1张桌子) 表格:问卷 编号(PK) 客户ID 状态 A1 A2 A3 。 。 。 A100 选项2:新方法(2张表) 表格:问题 QID(PK) 问题(varchar) 表格:答案 援助(PK) 客户ID QID(int) 答案(varchar) 还是选项3?

2
无模式/灵活+ ACID数据库?
我正在考虑将基于本地(本地安装)的VB应用程序(发票+库存)重写为面向小型企业客户的基于Web的Clojure应用程序。我打算将此作为SaaS应用程序提供给类似行业的客户。 我正在查看数据库选项:我的选择是RDBMS:Postgresql / MySQL。我可能会在第一年扩大到400位用户,通常每位用户每天20-40个页面浏览量/每天-主要用于非静态视图交易。每个视图将涉及获取数据和更新数据。必须符合ACID(或我认为)。因此交易量并不大。 毫无疑问,根据我的喜好选择这两种方法,但是对于这一要求,我认为这是SaaS应用程序的典型要求:随着我添加更多的客户/用户以及每个客户的需求,架构将发生变化。不断变化的业务需求(刚开始我会提供一些有限的灵活性)。由于我不是数据库专家,根据我的想法和所读的内容,我可以通过多种方式来处理: 在MySQl / Postgresql中进行传统的RDBMS模式设计,其中一个DB托管多个租户。并在每个表中添加足够的“自由浮动”列,以允许将来随着我添加更多客户或现有客户的更改而进行更改。每次对模式进行小的更改时,将更改传播到数据库中可能会有不利之处。我记得读过一篇文章,在Postgresql模式中更新可以实时完成而无需锁定。但是不确定,在这个用例中它有多痛苦或有多实用。而且,由于架构更改可能还会引入新的/次要的SQL更改。 有一个RDBMS,但是以灵活的方式设计数据库模式:具有接近实体属性值或仅作为键值存储。(例如,工作日为FriendFeed) 将整个事物作为对象存储在内存中,并定期将它们存储在日志文件中。(例如,edval,lmax) 选择NoSQL数据库,例如MongoDB或Redis。但是根据我的收集,它们不适合此用例,也不完全符合ACID。 寻找一些新的SQL Db,例如VoltDb或JustoneDb(基于云),它们保留SQL和ACID兼容行为,并且是“新一代” RDBMS。 我看了neo4j(graphdb),但不确定是否适合此用例 在我的用例中,除了可伸缩性或分布式计算之外,我还在寻找一种更好的方法来实现“模式中的灵活性+ ACID +一些合理的性能”。我在网上可以找到的大多数文章都谈到模式的灵活性,这是导致性能(在NoSQL DB的情况下)和可伸缩性的原因,而忽略了ACID /事务。 这是“模式灵活性与ACID”事务的“或”案例,还是有更好的出路?

3
PostgreSQL与MySQL:空间特征比较
我们正在构建具有空间数据组件的Web应用程序。首先,我们的空间数据比较将获取一个给定的点,并返回匹配的重叠空间多边形。 话虽如此,我们的数据库还有许多其他组件,其中包括您在常规关系数据库中可以找到的所有典型内容。 在项目中,我们必须选择要使用的数据库解决方案。 所有项目成员都对MySQL的实现和管理更加熟悉,但是所有研究表明PostgreSQL是更好的解决方案-特别是在使用postGIS的空间数据方面。 我们期望(希望)我们的应用程序在许多并发用户中会经历很多动作。 是否有任何将MySQL用作具有空间数据组件的RDBMS的经验的人有长期的建议/经验? 除熟悉之外,使用PostGIS是否有任何缺点?

5
PostgreSQL:数据库集群初始化失败
双方C:\PostgreSQL并C:\PostgreSQL\data拥有postgres完全访问和管理权限的用户。 我以管理员身份从postgres用户运行了postgresql-9.1.2-1-windows.exe。目标C:\PostgreSQL 我尝试的每种方式都得到“数据库集群初始化失败”。 问题 是否可以在不作为Windows服务的情况下运行所有​​程序? 有作为Windows服务安装的解决方法吗? 我正在尝试设置PostGIS以与GeoDjango一起使用。 我能够手动安装PostGIS。PostgreSQL的新手,我对所有这些都充满信心危机。第一次从MySQL到PostgreSQL。 来自C:\ Users \ Larry \ AppData \ Local \ Temp \ install-postgresql.log的相关日志输出: WScript.Network initialized... Called IsVistaOrNewer()... 'winmgmts' object initialized... Version:6.1 MajorVersion:6 Ensuring we can read the path C: (using icacls) to Larry: Executing batch file 'radA3CF7.bat'... Output file does not exists... Called …

1
为什么聚簇索引扫描执行数如此之高?
我有两个类似的查询生成相同的查询计划,除了一个查询计划执行1316次“聚簇索引扫描”,而另一个查询计划执行1次。 这两个查询之间的唯一区别是日期标准不同。长时间运行的查询实际上会缩小日期条件,并拉回较少的数据。 我已经确定了一些对两个查询都有用的索引,但是我只想了解为什么“聚集索引扫描”运算符在查询上执行1316次实际上与执行1次查询相同。 我检查了有关正在扫描的PK的统计信息,它们是相对最新的。 原始查询: select distinct FIR_Incident.IncidentID from FIR_Incident left join ( select incident_id as exported_incident_id from postnfirssummary ) exported_incidents on exported_incidents.exported_incident_id = fir_incident.incidentid where FI_IncidentDate between '2011-06-01 00:00:00.000' and '2011-07-01 00:00:00.000' and exported_incidents.exported_incident_id is not null 生成此计划: 缩小日期范围标准后: select distinct FIR_Incident.IncidentID from FIR_Incident left join ( select incident_id …

2
需要SQL Server冻结的Ghost清理解决方法
我有几张表,行数在5M和1.5G之间 每个表都有其BLOB字段,其大小从100字节到30 MBytes不等,并存储为“行外的大值类型” = ON 表存储在不同的文件组中,每个3-4个文件存储在不同的磁盘上@不同的LUNs @快速SAN 这些表每天增长5-100 Gb,并具有60万-150万行 经过一定时间(从2周到6个月不等)后,某些行将被删除或移至归档DB,因此-工作表中没有任何行超过6个月的行。 服务器的当前配置: SQL Server引擎是2008 R2 SP1 Enterprise @ 24核@ 64Gb RAM SQL Server运行时带有额外的启动标志: -T 3640; (无需为存储过程中的每个语句向客户端发送DONE_IN_PROC消息。这类似于SET NOCOUNT ON的会话设置,但是当设置为跟踪标志时,将以这种方式处理每个客户端会话) -T 1118;(将tempDB中的分配从一次1pg(对于前8页)切换到一个范围。) -T 2301;(启用特定于决策支持查询的高级优化。此选项适用于大型数据集的决策支持处理) -T 1117;(一次增长所有数据文件,否则轮流进行。) -E; (增加为文件组中的每个文件分配的扩展区数。此选项对于运行索引或数据扫描的用户数量有限的数据仓库应用程序可能会有所帮助) -T 834;(导致SQL Server使用Windows大页分配用于分配用于缓冲池,存储 http://msdn2.microsoft.com/en-us/library/aa366720.aspx, http://support.microsoft。 com / kb / 920093) SQL Server使用大页面扩展 SQL Server利用快速文件初始化选项 所有数据库的AUTOSHRINK均关闭 …

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.