数据库管理员

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

5
在SQL Server中找出多少记录没有正确电话号码的最佳方法是什么?
我有一个领域,人们在历史上可以用来自由提供价值。我需要确定没有适当值的记录,以便清理它们。 我一直在SSIS中四处寻找。我的倾向是在某些C#代码中使用带有正则表达式的脚本组件,然后进行重定向。仍然,我想知道SSIS中是否有一种方法可以不使用C#来执行此操作。 我没有很多运气找到一种方法来找出多少记录没有适当的电话号码。

2
如何将数据库/表实现为堆栈
我有一个状态机,需要为不同的用户推送/弹出一些文件名。传统上,我将使用堆栈作为数据结构的选择,但这需要使用数据库来完成,因为我没有办法在传入的Web请求之间保留数据结构。 我想知道使用数据库实现堆栈功能的好方法是什么? 我需要支持: push(fileName,user):为用户推送一个文件名 pop(user):弹出用户最上面的文件名 编辑: 我正在制作一个原型的原型,因此我将sqlite3与python一起使用。 谢谢!


8
标识列或UDF显式生成唯一ID?
我正在就是否最好PRIMARY KEY使用Identity Columns(我们明确使用生成唯一ID的UDF)进行辩论。 我在为“身份栏”争论。 他说,我的搭档正在争吵手动生成值 通过将UDF放在另一个可以放置UDF的桌子上 锁定资源 用一个称为ID_Value的字段递增ID表1 使用它作为全局唯一标识符 或者id+1在插入时让表格做一个 在没有标识约束的服务器和/或环境之间移动数据更容易;从一个有数据的数据库移动到另一个具有类似暂存数据或虚拟数据的类似数据库。对于非生产中的测试,我们可能希望将昨天的所有记录拉到暂存阶段进行测试。 哪种实现更有意义?

5
SQL Server命令行用法?可能吗?
我一直在尝试使用SQL Server Management Studio 2008内置的“解决方案资源管理器”来管理一个项目,经过2周的苦苦挣扎,我决定我真的不在乎它。它的“便利”功能实际上是一个障碍。 不幸的是,我工作的地方是一家MS商店,而且完全束手无策。我想回到命令行(我渴望Vim!)。我已经安装了一个带有TortiseSVN前端的本地Subversion存储库,以替换上面提到的“ Solution Explorer”并使其运行良好。我还安装了Vim,并且仍在进行自定义时,让它嗡嗡作响。 但是,我尚未找到解决方案的一件事是如何通过命令行对SQL Server运行命令。我习惯了MySQL / Postgres命令行提示符,因为那是我过去使用过的,并且在我上课时一直在使用。但是,我似乎找不到在Windows中通过命令行执行脚本的方法。我目前在Vim中编辑它们,在SSMS中刷新页面,然后执行。除非需要,否则我什至不愿触摸SMSS。 我看到过一些建议使用sqlsharp的帖子,但是当我转到该页面时,我感觉不完全是我想要的。 - 编辑 我真的希望可以有2个复选标记。P. Campbell提供了正确的技术答案,并且我已经尝试了几次(尝试sqlcmd时我总是遇到错误……正在研究命名管道的运行方式……即使我已经设置了它)并启用它,似乎无效。) 尝试过但没有成功之后,我尝试了将其复制并粘贴到Management Studio方法中的方法,但这太荒谬了。因此,我认为HardCode也是正确的。

2
对于SQL 2008 Web Edition,“太大”是多少?
对于我们即将托管的应用程序,我需要在SQL Server 2008 Web版本和SQL Server 2008 Enterprise版本之间进行选择。没有任何“必备”功能:该应用程序当前在SQL Express上运行,但将超过SQL Express施加的10GB最大大小。 我正在查看此比较表,以及本页“可伸缩性和性能”中最重要的表格。随着表越来越大,诸如“表和索引分区”之类的功能对于保证性能速度至关重要。但是,这将需要多少表大小? 我应该使用什么策略来确定数据库的大小和使用是否需要Enterprise Edition可伸缩性和性能功能?

4
如何查找Oracle中表上的索引占用的实际空间?
我想查找oracle 10g中的表上的索引占用的实际空间。我不打算包括oracle保留的空间以供将来使用。(不应该考虑oracle的开销。)我希望使用的字节而不是分配的字节。 你能帮助我前进吗? 另外,还有一种方法可以找到表中长字段的实际大小。 PS:vsize()和dbms_lob.getlength()不起作用。

2
InnoDB创建表错误:“行大小太大”
我们有一些工程师将标准化的db结构展平为临时表,以生成报告。列指定为TEXT NOT NULL(我知道“他们为什么这样做?”;让我们假设我们正在解决此问题)。 我们在Linux上使用带有InnoDB插件1.0.9的MySQL 5.1.48 Community RHEL5。 使用MyISAM时,我们从未遇到最大列或最大行长度的表大小限制(在调查过程中,我们达到了最大列限制为2598(第2599个原因导致错误1117)。使用InnoDB时,我们达到了限制。表(无数据插入)为: 第1行的错误1118(42000):行大小太大。使用的表类型的最大行大小(不计BLOB)为8126。您必须将某些列更改为TEXT或BLOB 我正在寻找以下问题的答案: 使用很多v / v / b / t列时确定行大小特殊性的详细公式是什么?我已经尝试过使用varchar(N)列(其中N在1到512之间),UTF8字符集(* 3)和表将使用的列数直到失败为止的几种不同形式形式。我尝试过的所有组合都不提供与实际测试结果匹配的值。 计算行大小时,我还必须考虑其他哪些“开销”? 当我从使用varchar(109)列创建表到varchar(110)列时,为什么错误消息从8126变为65535?
11 mysql  innodb 

1
有没有可靠的方法来确定何时应运行DBCC CLEANTABLE来回收空间?
最近,我不再只是在文件利用率接近80%时才增长文件,而是通过碎片整理,添加和删除聚簇索引,实现行或页面压缩等常用技巧更主动地回收空间。 但是,在某些情况下,我可以通过执行DBCC CLEANTABLE回收更多的空间。在我的环境中有成百上千个数据库,因此不可能知道用户在每个数据库中做什么,并且完全可以接受涉及删除固定长度列的更改。通常,通过查看我编写的某些对象空间利用脚本中的行数与页数,可以发现这些机会。我想通过尝试自动检测这种情况来使这一步骤更进一步。 我想知道的是,是否有人在积极监视这些机会,如果是,您在寻找什么? 我的想法是写一些东西来收集行的最大和最小大小,表中的行数,分配的页数和使用的页数,然后做一些基本的数学运算来记录结果远远超出了“预期”范围。


2
是否有人使用SQL Server功能创建按数字区分的存储过程组?
问题是指此msdn文档中的number参数 如果不这样做,则可以在SQL Server中创建多个存储过程(按数字区分),然后将其删除。 create procedure dbo.stored_proc1 as select 1 go create procedure dbo.stored_proc1;2 as select 2 go exec stored_proc1 -- returns 1 go exec stored_proc1;2 -- returns 2 go drop stored_proc1 -- drops both go 我想知道这个功能是否被任何人用于有用的东西,或者仅仅是出于历史的好奇心。



2
PostgreSQL中UniProt的生物学序列
在PostreSQL中存储UniProt生物序列的最佳方法是什么? 资料明细 我们从UniProt中提取了1200万个序列-这个数字很可能每3-10个月增加一倍。 序列的长度可以从10到500亿个字符不等 少于1%的序列超过1万个字符 单独存储较长的序列是否会提高性能? 序列可以是蛋白质或DNA字母 DNA字母有5个字符(A,T,C,G或-)。 蛋白质字母将包含大约30个字符。 我们不介意将两个不同字母的序列存储在不同的列甚至不同的表中。有帮助吗? 数据访问详细信息 回答耶利米·佩斯卡的评论: 蛋白质和DNA序列将在不同时间访问 无需在序列中搜索(在db之外完成) 以太会同时访问单个行还是通过ID提取行集。我们不需要扫描行。所有序列都由其他表引用-数据库中存在几个在生物学和时间上有意义的层次结构。 向后兼容 能够继续将以下哈希函数(SEGUID-SEquence全局唯一IDentifier)应用于序列将是一个很好的选择。 CREATE OR REPLACE FUNCTION gfam.get_seguid(p_sequence character varying) RETURNS character varying AS $BODY$ declare result varchar := null; x integer; begin select encode(gfam.digest(p_sequence, 'sha1'), 'base64') into result; x := length(result); if substring(result from x …
11 postgresql 

4
审核MySQL数据库上的登录
有没有办法审核MySQL的登录信息?我希望能够为每个员工创建一个用户名,从而创建登录的审计线索。但是,谷歌搜索并没有取得好的结果。 我们可以审核的越多越好。至少,很高兴知道谁何时登录。最好查看谁在何时执行什么查询。因为数据库中存在潜在的敏感信息,所以那里的日志主要是告诉客户我们拥有它们。 显然,能够审核每个用户(和何时)执行的查询也将使我们能够更好地确定如果出现安全问题的原因是谁。

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.