`
andyhu1007
  • 浏览: 199447 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Rails每周闲碎(六): Database

阅读更多

1. 数据库的存储过程

 

    数据库的存储过程是为了提升sql语句的复用性和执行效率而出现的一种技术。

 

    它的优点有:

 

    1. 无需像sql语句一样,每次执行都要编译。这带来的是执行效率的提升。

 

    2. 重复使用。写好之后,可以重复调用。

 

    3. 提升应用程序的可移植性。无需改变程序代码,而只需改变存储过程,这为应用程序提高了可移植性。

 

    格式:

 

 

Create procedure procedue_name

   [@parameter data_type][output]

   [with]{recompile|encryption}

   as

        sql_statement

 

 

2. MS SQL Server snapshot

 

    A SQL server snapshot is essentially what it sounds like, it is a snapshot of the system that is stored and used as a primary system. When a snapshot occurs, the information is stored in the main drive and then further information created after the snapshot occurs is stored in a new data is stored in what is called a sparse file. A snapshot creates a backup of the system at that time, and uses 90% less drive space than backing up the system does. This information is stored for as long as the user requires it, and can be dropped when no longer needed.

 

    The purposes of a SQL server snapshot vary depending on the needs of the user. In some cases, it is used simply to back up the system without having to use so much drive space during the working day. In other situations, it is created when data is perceived as "ideal" and any new data needs to be compared to the data that was previously acquired. This information can be stored indefinitely and new snapshots can be created at any point to continue tracking specific data. When saving the user should simply take the name of the data and add a time stamp to it. This will ensure that there is no confusion when accessing the information as to what its purpose is.

 

    We used it to re-store our database at a time point, and it's quite faster than doing a restore from a backup.

 

3. _, %等字符对于mssql server有特殊含义

 

    rails没办法知道该不该escape这些字符,应该手动处理。

 

4. MS SQL Server的cluster index

 

    其它index都是逻辑index,而cluster index跟物理存储相关。一张表只能有一个cluster index,通常都是primary key。想通过改变cluster index来提升性能,是一种可接受的方案么?

 

   http://www.databasejournal.com/features/mssql/article.php/1443581/Index-Optimization-Tips.htm

 

5. index和性能

 

    要使数据库的组合index发挥作用,需要注意rails find方法中的select column顺序要和组合index的顺序保持一致。为了提升性能,总要忍受一些不那么美的事情。

 

6. sql server index: include clause

 

   Specifies the nonkey columns to be added to the leaf level of the nonclustered index. The nonclustered index can be unique or nonuniqe.

 

    http://jdixon.dotnetdevelopersjournal.com/using_the_sql_2005_create_index_include_clause.htm

 

7. ruby database gem

 

how to call store procedure from ruby?

 

http://sequel.rubyforge.org/documentation.html

分享到:
评论

相关推荐

    Rails的精简版本Rails::API.zip

    Rails::API 是 Rails 的精简版本,针对不需要使用完整 Rails 功能的开发者。 Rails::API 移除了 ActionView 和其他一些渲染功能,不关心Web前端的开发者可更容易、快速地开发应用程序,因此运行速度比正常的 Rails ...

    Ruby on Rails入门例子

    - **数据库迁移(Database Migrations)**:Rails使用迁移来管理数据库结构的变化。通过`rails generate migration AddTitleToPosts title:string`创建迁移,然后运行`rails db:migrate`执行迁移。 - **...

    rails-basic-template:基本 Rails 模板

    Ruby gem 的地方新的 Rails 应用rails new <name> -BT 在 Gemfile 中更改以下内容# use '4.1.6' for herokugem 'rails' , '4.1.6'# Use postgresql as the database for Productiongem 'pg' , group : :production# ...

    rails-ansible-presentation:有关Rails + Ansible的Deckset演示

    [适合] Rails :red_heart: Ansible [适合] Rails :red_heart: Ansible (有一点帮助) Rails部署 简单吧? 将应用程序放在服务器上。 捆绑宝石。 应用迁移。 重新启动服务。 Easy Rails部署 git push master ...

    rails_console_toolkit:可配置的 Rails 控制台助手

    RailsConsole 工具包 :wrench: :toolbox: 可配置的 Rails 控制台助手更快地查找记录,添加自定义助手,将您的控制台寿命提高 100%。安装将此行添加到应用程序的 Gemfile 中: gem 'rails_console_toolkit' 然后生成...

    webpack-rails, 将 web pack与你的Ruby on Rails 应用程序集成.zip

    webpack-rails, 将 web pack与你的Ruby on Rails 应用程序集成 不再维护webpack-rails 不再被维护。 有关详细信息,请参阅 #90. web pack-railsweb pack 为你提供了将 web pack集成到现有的Ruby on Rails 应用程序中...

    rails_email_preview:在Rails中预览和编辑应用程序邮件模板

    Rails电子邮件预览 使用此Rails引擎在浏览器中预览电子邮件。 与Rails 4.2+兼容。 一封电子邮件评论: 所有电子邮件预览的列表: REP带有两个主题:一个简单的独立主题和一个使用的主题。安装加 到Gemfile: gem '...

    rails-dom-testing:从ActionView中提取DomAssertions和SelectorAssertions

    Rails :: Dom :: Testing 这个gem负责比较HTML DOM并断言Rails应用程序中存在DOM元素。 assert_dom_equal通过assert_dom_equal和assert_dom_not_equal进行比较。 元素通过assert_dom , assert_dom_encoded , ...

    Ruby on Rails入门经典代码

    Ruby on Rails,简称Rails,是基于Ruby语言的一个开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。本压缩包中的"Ruby on Rails入门经典代码"提供了新手学习...

    rails_stack-cookbook:使用 nginx、unicorn、redis 等设置 Rails 环境的 Chef 食谱

    rails_stack 食谱 TODO:在此处输入食谱说明。 例如,这本食谱使您最喜欢的早餐三明治。 要求 TODO:列出您的食谱要求。 确保包含本说明书对平台、库、其他说明书、软件包、操作系统等的任何要求。 例如 包裹 ...

    rails-controller-testing:将`assigns`和`assert_template`带回到您的Rails测试中

    Rails :: Controller :: Testing 这个gem将assigns给控制器测试的内容以及assert_template带回assigns控制器和集成测试的内容。 这些方法已中。 安装 将此行添加到您的应用程序的Gemfile中: gem 'rails-...

    rails-cache-extended:帮助程序和日志记录添加到 Rails 缓存

    Rails::Cache::Extended 这允许为记录集合生成自动过期的缓存键 安装 将此行添加到应用程序的 Gemfile 中: gem 'rails-cache-extended' 然后执行: $ bundle 或者自己安装: $ gem install rails-cache-...

    vite_rails:Rails中的:high_voltage:Vite.js,为您JavaScript体验带来欢乐

    允许您使用为Rails应用程序的前端供电。 是将前端工具像Ruby一样进行编程,纯属喜悦! :smiling_face_with_heart-eyes: 或在运行的检查。 产品特点 :high_voltage: :light_bulb: 即时服务器启动 :high_voltage: ...

    atom-rails-db-scheme:Rails数据库模式的Autocomplete +提供程序

    Rails数据库方案 Rails数据库模式的Autocomplete +提供程序。 特征 自动完成活动记录 根据当前上下文打开模式文件 设定值 将Rails语法设置为默认语法。 " * " : core : customFileTypes : " source.ruby.rails...

    rails-html-sanitizer

    如果您在非Rails应用程序中需要类似的功能,请考虑直接使用(这是处理内幕消毒的原因)。 安装 将此行添加到您的应用程序的Gemfile中: gem 'rails-html-sanitizer' 然后执行: $ bundle 或将其自己安装为: $...

    react_rails_flux_screencast:react-rails + Flux(Alt.js)教程

    带有Flux(Alt)的React Rails截屏博客文章: : YouTube视频: : 这是截屏视频的代码,显示了如何将和集成到您的rails应用程序中。 我只使用不带npm的链轮,因此设置非常简单。 Alt( )React Rails( )Lodash( ...

    rails-docker-compose:Ruby on Rails的Docker开发环境

    使用Docker开发Ruby on Rails的配置文件 docker-compose up 利润! 你得到什么 一线开发环境的设置和启动: docker-compose up 。 一个易于安装的依赖关系可在新计算机上进行编码:Docker。 (与使用Vagrant时的两...

    rails-developer-scanning:针对Rails开发人员的自动面试问题

    标题 "rails-developer-scanning" 指向的是一个针对Rails开发者设计的自动化面试工具,旨在帮助面试官或招聘者快速有效地评估应聘者的Rails技能。这个工具名为 "jyaasa_interviewer",通过RubyGem安装,使得面试过程...

    rails_application_templates:在开始新的Rails项目时有用的点点滴滴

    命令行中的psql应该可以正常工作(使用whoami中的用户名) 如果您得到psql: FATAL: database “” does not exist请不要忘记发出createdb命令 否则,您将必须更新pg配方,以具有正确的Postgres用户名和密码 这是我们...

    rails_emoji_picker:将表情符号添加到您的应用

    Rails表情符号选择器 表情符号选择器与Rails应用程序的简单集成。 预习 安装 将此行添加到您的应用程序的Gemfile中: gem 'rails_emoji_picker' 用法 运行命令 rails g rails_emoji_picker:install 它将表情符号...

Global site tag (gtag.js) - Google Analytics