我们如何继续提高SQL技能?

时间:2020-03-06 14:25:42  来源:igfitidea点击:

SQL开发人员如何跟上SQL世界的最新技术和趋势?是否有任何博客,书籍,文章,技术等被用来保持最新和了解?

面向对象,过程和函数式编程人员有很多机会可以参与各种开源项目,但是在我看来,FOSS途径对SQL开发人员来说有些封闭。

有什么想法吗?

解决方案

虽然不是SQL Server专家,但总的来说,我发现基于社区的事件是跟上当前模式的好方法。参与此处的开发人员/ DBA /营销专家/插入专业社区的基本结果是,我们正在学习新的思维模式并锻炼批判性思维。无论我们是什么专业人士,这都是一种成长的好方法。

怎么样http://sqlblog.com/

关于SQL语言的事情是,它几乎是一个静态目标。不久之后,我们将寻求增加对集合论和问题域本身(而不是语言细节)的理解。

真正的实质是语言的两面,无论是数据库本身(如何存储,检索和组织大型数据集),还是应用程序中(带有ORM等)

查找测试TRANSACT-SQL知识的具有挑战性的问题...就我个人而言,我很喜欢Joe Celko的SQL难题和答案。

Joe Celko的SQL难题和解答http://ecx.images-amazon.com/images/I/51DTJ099P7L.SL500_BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20.jpg

老实说,我对极端的SQL技能并不需要太多。一旦可以创建事务(用于数据库一致性)和基本触发器(用于跨表一致性),通常就可以在程序中保留程序逻辑...,而不要将其放入我正在使用的任何数据库中。我没有发现值得一生研究的SQL深度,不像常规编程那样深入研究。

SQL开发人员还是DBA?

除了在日常工作中学习不同的SQL方言(Oracle,SQL Server等)外,SQL并没有真正改变太多。当然,随着技能的发展,确定存储过程的实现位置等,我们可以引入更高级的概念,但是最后只是SQL。最重要的是使架构正确且可维护。

现在,管理数据库已经完全不同了,它具有一系列工具,并且数据库软件本身每隔几年就会更新一次。 Oracle至少拥有新闻通讯,网站和杂志,这些新闻通讯,网站和杂志大概包含许多信息,示例和最佳实践方案。

我通过分析缓慢而复杂的查询并寻找改善方法来改善自己。可以在SQL Server中通过分析查询计划工具并查找瓶颈来完成。另外,我发现《 Visual Quickstart Guide》指南非常适合快速参考。

我碰到的最好的事情是处理其他人的SQL代码。尤其是遗留业务代码。我们想通过某种测试来测试技能,开始更改其他人都无法理解的"伏都教密码"。 :)

除此之外,我只是尝试关注SQL新版本的变化,看看是否有我可以利用的东西。

使用phpmyadmin时闪闪发光的提示
很好,很冗长

SQL中没有当前的技术和趋势。只有我们应该已经知道但不知道的东西。学习这些东西的正确方法是痛苦……如此之多的痛苦。

加入我们使用的DB风格的邮件列表...或者在stackoverflow上潜伏;)

Joe Celko的《 SQL Puzzles and Answers》和《 Smarties SQL》是两本最好的通用SQL书籍。两者都是很好的资源,可为我们提供一个想法,以解决我们以前认为需要游标或者某些客户端库才能完成的棘手问题。对于任何真正感兴趣的SQL怪胎,这些书也非常适合随便阅读,而不仅仅是作为参考。太棒了。

这是一些有趣的SSIS信息。
http://blogs.conchango.com/jamiethomson/default.aspx

Wiki上还有一些很好的信息:
http://wiki.lessthandot.com/index.php/Main_Page

对于那些说SQL永不更改的人,SQL Server 2005和2008在T-SQl中进行了一些巨大的更改,这将有助于解决一些棘手的问题,这些问题在SQL Server 2000中是可怕的,而且一旦学习了新语法就容易得多,是的,有东西要跟上。

性能调整和SSIS也是极其复杂的主题,需要学习很多东西。

我确实发现,选择不学习高级SQL技能的开发人员倾向于编写性能不佳的SQL代码,并且一旦数据库中的记录数量增加,他们编写的应用程序就会变得缓慢而难以修复。现在,我正在与开发人员一起修复他们编写的一些错误代码,这些代码实际上导致每个查询在网站上超时。显然,这现在很紧急,如果开发人员具有更好的SQL技能,那么一开始就以更有效的方式编写代码将很容易。

我从未听说过" SQL开发人员"一词。 SQL应该是我们工具箱中的一项技能,例如排序,我们喜欢的任何框架,JavaScript等。继续提高SQL技能以继续使用它的最佳方法。

作为开发人员,而不是DBA,我关注各种开发人员资源,而这些资源通常与DB相关,但是我并不是专门"努力跟上"。

我知道很多,但我也知道,还有很多要知道的。在每个项目中,我都必须学习一些新知识。而且每个项目还涉及我对过去遇到的类似任务采取不同的方法。

如果我到了一直以为我都在做相同事情的阶段,也许我会做出明智的努力以采取特定的步骤。但是目前,在可预见的将来,我正在有机地学习,在职工作以及我的项目要求。

读:

书籍Celko(也可以阅读一些Oracle偏爱的书籍)
上面提到的博客,外加SSWUG

网络研讨会和会议跟踪特定于供应商特定内容的最佳方法,例如
SSIS / SSRS / SSAS

实践:

改进代码(我的和其他人)

重构

指导/培训其他开发人员

老实说,这是随着时间的推移我们会变得更好的事情之一。尽可能多地阅读以了解可行的方法。有些事情需要一段时间才能真正理解。很长一段时间以来,我一直被子查询吓跑了,直到我几乎别无选择,只能使用它们。

当我们有更多的经验并需要做更多复杂的事情时,我们只会学习自己的方式。

SqlServerCentral文章,脚本,建议的绝佳来源

不幸的是,要访问我们需要注册的文章(虽然是免费的)
我想他们可以从StackOverflow中学到的一件事是消除登录障碍

大多数"当前"内容不是SQL本身,而是数据库如何存储信息以及如何更快地检索信息。看看这个其他线程:SQL优化培训有哪些参考,课程和/或者最佳实践?

唯一真正的前沿是查询计划,索引结构,排序算法,类似的东西,而不是SQL本身。

我们问这个问题的事实已经是一个好兆头。避免自满是"忠告之一"。不能替代编写和优化SQL。实际使用是保持敏锐度的最佳方法,但存在"以木换林"的情况的风险,在这种情况下,我们倾向于使用舒适和熟悉的东西。尝试新策略,研究新方法以及寻找新方法来训练我们的大脑思考集合,SQL,关系理论,并掌握我们采用的特定方言的最新发展,这些都是优秀的SQL开发人员的标志。

这些天来有很多不错的博客。我主要在Microsoft领域工作,所以我喜欢SQLTeam.com。

Usenet是闲逛并做出贡献的好地方。有许多与SQL有关的新闻组。通常,我们会发现解决别人的问题可以学习新的策略或者迫使我们研究每天都不会遇到的语言的尘土飞扬的角落。 ISP似乎注定要关闭所有Usenet,因为它们的使用非常邪恶,因此这可能会像Dodo鸟一样。

另外,某些IRC服务器具有活跃的sql通道,我们可以在其中发挥相同的作用(只需带上厚厚的皮肤即可)。

最后,这个网站可能是另一个令人垂涎的地方,我们可以在其中阅读难题的答案,了解它们如何在我们自己的世界中应用,实践技巧并将其内化。也能有所作为,因为看到别人如何投票赞成或者反对解决方案是100%的纯正反馈。

当然,那里也有很多很棒的书。 Celko所做的任何事情都是赢家,而在SQL Server方面,Kalen Delaney和Ron Soukup创造了一些赢家。

我浏览了答案,显然没有人提到斯蒂芬·法鲁特的作品。

我强烈建议我们考虑" SQL的艺术"(http://www.amazon.com/Art-SQL-Stephane-Faroult/dp/0596008945),我发现它真的很有趣,而且非常有趣,甚至阅读起来都很有趣。