169it科技资讯
169it -->


当前位置:  建站>其它
本页文章导读:
    ▪Dynamics CRM 2011编程系列(49):FetchExpression(一)            今天我们来看看FetchExpression表达式吧,在Dynamics CRM 系统中它可以说是无所不在呀。大家都知道我们查询数据库中的数据会用到SQL语言,把Dynamics CRM 系统比作数据库的话......
    ▪Linux个人磁盘分区方案(20G)      Linux个人磁盘分区方案(20G) 主机配置I3虚拟机 1G内存 20G硬盘容量 /boot 100M    存放启动Linux系统所必需的文件,包括内核文件、启动菜单配置文件等 /   2G    系统根......
    ▪细谈MySQL配置的优化       最近一直在研究mysql 的优化设置,网上有很多的文章教怎么配置MySQL服务器,但考虑到服务器硬件配置的不同,具体应用的差别,那些文章的做法只能作为初步设置参考,我们需要根据自己的......
      最新IT科技资讯推荐: -1

[1]Dynamics CRM 2011编程系列(49):FetchExpression(一)
    来源: 互联网  发布时间: 2013-11-02

      今天我们来看看FetchExpression表达式吧,在Dynamics CRM 系统中它可以说是无所不在呀。大家都知道我们查询数据库中的数据会用到SQL语言,把Dynamics CRM 系统比作数据库的话呢,FetchExpresion就是它的SQL啦。

   当然啦,FetchExpression没有SQL那么灵活。但是作为一个用XML来描述查询信息的引擎来说也确实挺棒的!我们先来看一个简单的FetchExpression表达式吧:

 用Dynamics CRM 2011 高级查找编辑器编辑如下图中的查询:

 

高级查找编辑器对应的Fetch表达式

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
  <entity name="account">
    <attribute name="accountid" />
    <attribute name="address1_city" />
    <attribute name="address1_addresstypecode" />
    <attribute name="name" />
    <order attribute="address1_city" descending="false" />
    <filter type="and">
      <filter type="or">
        <condition attribute="name" operator="eq" value="Microsoft" />
        <condition attribute="accountnumber" operator="eq" value="123456" />
      </filter>
      <filter type="and">
        <condition attribute="address1_line1" operator="eq" value="ShangHai" />
        <condition attribute="address1_telephone2" operator="eq" value="135********" />
      </filter>
    </filter>
    <link-entity name="systemuser" from="systemuserid" to="owninguser" alias="aa">
      <attribute name="fullname" />
      <filter type="and">
        <condition attribute="fullname" operator="eq" value="Jeff" />
      </filter>
    </link-entity>
  </entity>
</fetch>


 

 Fetch表达式并不复杂,很容易通过节点的命名猜出它们的用途。Fetch主要的节点及其描述如下表所示:

节点名称描述Entity通过设置该节点的属性name的值来决定查询哪个实体上的记录All-attribute返回当前查询实体的所有属性attribute返回当前查询实体下的某个属性,需要设置该节点的name属性filter过滤约束link-entity相关实体,Fetch表达式能在返回的结果中包含关联实体的字段,和sql中的连接类似。order排序condition约束规则FetchFetch表达式的根节点,通过设置该节点的aggregate属性决定是否使用聚合查询,count属性决定查询返回记录行上限。  

 

在Dynamics CRM 2011 SDK中提供了FetchExpression的Schema文件,如果我们需要制作复杂的Fetch表达式的话,建议引用该Schema文件。

 

我们来看几个有意思的FetchExpression例子吧:

1. 查询Account实体下存在多少行记录

FetchExpression

<fetch aggregate="true">
  <entity name="account">
    <attribute name="name" alias="record_count" aggregate="count"/>
  </entity>
</fetch>

Result

<resultset morerecords="0"><result><record_count formattedvalue="7">7</record_count></result></resultset>

 

2. 查询Account实体下字段Telephone1包含值的记录总数

FetchExpression

<fetch aggregate="true">
  <entity name="account">
    <attribute name="telephone1" alias="column_count" aggregate="countcolumn"/>
  </entity>
</fetch>

Result

<resultset morerecords="0"><result><column_count formattedvalue="3">3</column_count></result></resultset>


3. 查询Account实体及与其关联的Contact实体,且对account实体进行升序排序,对contact实体进行降序排序

<fetch aggregate="false">
  <entity name="account">
    <attribute name="name" />
    <link-entity from ="contactid" to="primarycontactid" name="contact" alias="c">
      <attribute name="firstname"/>
      <order attribute="firstname" descending="true"/>
    </link-entity>
    <order attribute="name" descending="false"/>
  </entity>
</fetch>

Result

<resultset morerecords="0"><result><name>BeyondSoft</name><c.firstname>Hitesh</c.firstname></result><result><name>Wicresoft</name><c.firstname>Jim</c.firstname></result><result><name>Wicresoft</name><c.firstname>Hitesh</c.firstname></result><result><name>Wicresoft</name><c.firstname>Clark</c.firstname></result><result><name>Wicresoft</name><c.firstname>Bob</c.firstname></result></resultset>


4. 查询公司名称以Wic开头,且客户的首字母为J开头的记录数

<fetch aggregate="true">
  <entity name="account">
    <attribute name="name" aggregate="count" alias="c"/>
    <link-entity from="contactid" to="primarycontactid" name="contact" alias="c">
      <filter type="and">
        <condition attribute="fullname" operator="begins-with" value="j"></condition>
      </filter>
    </link-entity>
    <filter type="and">
      <condition attribute="name" operator="begins-with" value="wic"></condition>
    </filter>
    
  </entity>
</fetch>



Result

<resultset morerecords="0"><result><c formattedvalue="1">1</c></result></resultset>


 



 



 

 

作者:ghostbear 发表于2013-2-19 17:54:36 原文链接
阅读:3 评论:0 查看评论

    
[2]Linux个人磁盘分区方案(20G)
    来源: 互联网  发布时间: 2013-11-02

Linux个人磁盘分区方案(20G)

主机配置I3虚拟机 1G内存 20G硬盘容量

/boot 100M    存放启动Linux系统所必需的文件,包括内核文件、启动菜单配置文件等

/   2G    系统根目录

/tmp 4G    存放系统运行过程中使用的一些临时文

/swap 2G   交换文件系统(一般为物理内存的1.5到2倍,必须独立分区,物理内存大于8G可以不设这个交换分区)

/usr 4G     这是最宏大地目录,要用到地应用程序和文件都寄存在这个目录下。

/var 4G   存放系统中经常需要变化的一些文件(如系统日志文件、用户邮箱目录等),常常被修改地目录能够放在这个目录下(其中系统地日志文件就在/var/log目录中)

/opt余下的空间    存放第三方软件程序和工具

作者:lyzlyfok 发表于2013-2-19 18:52:08 原文链接
阅读:0 评论:0 查看评论

    
[3]细谈MySQL配置的优化
    来源: 互联网  发布时间: 2013-11-02

最近一直在研究mysql 的优化设置,网上有很多的文章教怎么配置MySQL服务器,但考虑到服务器硬件配置的不同,具体应用的差别,那些文章的做法只能作为初步设置参考,我们需要根据自己的情况进行配置优化,好的做法是MySQL服务器稳定运行了一段时间后运行,根据服务器的”状态”进行优化。

mysql> show global status;

可以列出MySQL服务器运行各种状态值,另外,查询MySQL服务器配置信息语句:

mysql> show variables;

一、慢查询

mysql> show variables like ‘%slow%’;
+——————+——-+
| Variable_name | Value |
+——————+——-+
| log_slow_queries | ON |
| slow_launch_time | 2 |
+——————+——-+

mysql> show global status like ‘%slow%’;
+———————+——-+
| Variable_name | Value |
+———————+——-+
| Slow_launch_threads | 0 |
| Slow_queries | 4148 |
+———————+——-+

配置中打开了记录慢查询,执行时间超过2秒的即为慢查询,系统显示有4148个慢查询,你可以分析慢查询日志,找出有问题的SQL语句,慢查询时间 不宜设置过长,否则意义不大,最好在5秒以内,如果你需要微秒级别的慢查询,可以考虑给MySQL打补丁:http://www.percona.com /docs/wiki/release:start,记得找对应的版本。

打开慢查询日志可能会对系统性能有一点点影响,如果你的MySQL是主-从结构,可以考虑打开其中一台从服务器的慢查询日志,这样既可以监控慢查询,对系统性能影响又小。

二、连接数

经常会遇见”MySQL: ERROR 1040: Too many connections”的情况,一种是访问量确实很高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力,另外一种情况是MySQL配 置文件中max_connections值过小:

mysql> show variables like ‘max_connections’;
+—————–+——-+
| Variable_name | Value |
+—————–+——-+
| max_connections | 256 |
+—————–+——-+

这台MySQL服务器最大连接数是256,然后查询一下服务器响应的最大连接数:

mysql> show global status like ‘Max_used_connections’;
+———————-+——-+
| Variable_name | Value |
+———————-+——-+
| Max_used_connections | 245 |
+———————-+——-+

MySQL服务器过去的最大连接数是245,没有达到服务器连接数上限256,应该没有出现1040错误,比较理想的设置是:

Max_used_connections / max_connections * 100% ≈ 85%

最大连接数占上限连接数的85%左右,如果发现比例在10%以下,MySQL服务器连接数上限设置的过高了。

三、Key_buffer_size

key_buffer_size是对MyISAM表性能影响最大的一个参数,下面一台以MyISAM为主要存储引擎服务器的配置:

mysql> show variables like ‘key_buffer_size’;
+—————–+————+
| Variable_name | Value |
+—————–+————+
| key_buffer_size | 536870912 |
+—————–+————+

分配了512MB内存给key_buffer_size,我们再看一下key_buffer_size的使用情况:

mysql> show global status like ‘key_read%’;
+————————+————-+
| Variable_name | Value |
+————————+————-+
| Key_read_requests | 27813678764 |
| Key_reads | 6798830 |
+————————+————-+

一共有27813678764个索引读取请求,有6798830个请求在内存中没有找到直接从硬盘读取索引,计算索引未命中缓存的概率:

key_cache_miss_rate = Key_reads / Key_read_requests * 100%

比如上面的数据,key_cache_miss_rate为0.0244%,4000个索引读取请求才有一个直接读硬盘,已经很BT 了,key_cache_miss_rate在0.1%以下都很好(每1000个请求有一个直接读硬盘),如果key_cache_miss_rate在 0.01%以下的话,key_buffer_size分配的过多,可以适当减少。

MySQL服务器还提供了key_blocks_*参数:

mysql> show global status like ‘key_blocks_u%’;
+————————+————-+
| Variable_name | Value |
+————————+————-+
| Key_blocks_unused | 0 |
| Key_blocks_used | 413543 |
+————————+————-+

Key_blocks_unused表示未使用的缓存簇(blocks)数,Key_blocks_used表示曾经用到的最大的blocks数, 比如这台服务器,所有的缓存都用到了,要么增加key_buffer_size,要么就是过渡索引了,把缓存占满了。比较理想的设置:

Key_blocks_used / (Ke

    
最新技术文章:
▪linux内核中的信号机制--信号处理    ▪windows忘记密码    ▪常见的10种“瓶颈”
▪详解Linux内存使用信息    ▪「学习笔记——Linux」Linux软件管理(RPM,Dpkg,APT)    ▪Shell(Bash)编程实例之获取某个文件夹下的所有
▪Dynamics CRM 2011编程系列(49):FetchExpression(一)    ▪Linux个人磁盘分区方案(20G)    ▪细谈MySQL配置的优化
▪交换机与路由器的区别    ▪什么叫网关的精解    ▪Linux下date命令,格式化输出,时间设置
▪「学习笔记——Linux」Linux账号管理与ACL权限    ▪bash参考手册之四(shell内建命令)    ▪集线器、交换机、路由器、中继器及网关、网
▪【学习笔记——Linux】Linux下正确关机方法    ▪【学习笔记——Linux】Linux磁盘和文件系统管    ▪实验一 SCVMM安装
▪Tomcat7和mysql连接池的配置方法和测试(dbcp方    ▪Tomcat7和mysql连接池的配置方法和测试(dbcp方    ▪linux内核中的信号机制--信号发送
▪轻松搭建自己的Linux发行版本    ▪bash参考手册之三(基本的Shell特性)续九    ▪fedora18无线用pppoe拨号上网
▪高并发下的 Nginx 优化方案    ▪使用linux命令搜集    ▪JVM 配置参数学习与研究
▪修改CentOS的yum源为163    ▪CentOS下源码安装php+apache+mysql    ▪Redis监控方案
▪linux下压缩工具的区分-gzip,bzip2,tar    ▪基于apache搭建svn    ▪Windows下查看占用端口的程序
▪Nginx+CI 出现404错误    ▪tcpdump抓包工具的高级应用    ▪Windows socket之IOCP实例----IOCP开发驾照理论考试
▪Web访问异常简单报警    ▪【linux环境配置】linux改成root用户的命令    ▪IIS7.0未能加载文件或程序集
▪linux下获得root权限    ▪IIS6 配置ASP.NET网站伪静态    ▪服务器更换硬盘后Oracle不能连接问题的解决
▪在源Exchange Mailbox 服务器宕机的情况下将用户    ▪Ubuntu下WordPress更新固定链接方法总结    ▪如何在suse linux 建立共享文件夹
▪linux ntp 时间服务器及客户端安装配置    ▪Thunderbird设置邮件回复时自动签名和邮件引用    ▪Resin Windows一键部署应用脚本BAT
▪认识Linux系统服务(鸟哥18章笔记)    ▪Vmware中的网络工作模式    ▪Cygwin + NS2 + Win XP 安装方法 网上 唯一 有效版
▪linux内核中的文件描述符(一)--基础知识简介    ▪64位系统DOSBox 下面nasm编译程序出现"Unable to ope    ▪Linux 自动上传备份文件
▪Linux下MySQL配置文件my.ini位置    ▪Memcached的管理    ▪linux内核中的copy_to_user和copy_from_user(二)—图解
▪jdk1.7和tomcat7安装过程    ▪虚拟项目学习git/github原理与基本操作9    ▪以wifi为媒介,linux系统与android设备交互
▪find和grep命令    ▪linux编程实例1    ▪Dynamics CRM 2011编程系列(48): WCF Service 和 Web
▪vmware 下的linux操作系统 共享windows网络    ▪一次在安装完VMware tools后,系统无法进入图形    ▪Ubuntu 12.04重装手记
▪Linux常见的登录文件档案名称    ▪虚拟项目学习git/github原理与基本操作2    ▪安装MyEclipse6.5提示输入proxy ip和端口号问题解
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

浙ICP备11055608号