首先简单的介绍两者:
【linux操作系统:简称命令浮操作系统】
简介:
简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于x86系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。
特点:
绝大多数基于Linux内核的操作系统使用了大量的GNU软件,包括了shell程序、工具、程序库、编译器及工具,还有许多其他程序,例如Emacs。正因为如此,GNU计划的开创者理查德·马修·斯托曼博士提议将Linux操作系统改名为GNU/Linux。但有些人只把操作系统叫做"Linux"。
Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
linux桌面
过去,Linux主要被用作服务器的操作系统,但因它的廉价、灵活性及Unix背景使得它很合适作更广泛的应用。传统上有以Linux为基础 ......
http://blog.csdn.net/adcxf/archive/2009/03/14/3989725.aspx
共 享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空 间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。
采用共享内存通信的一个显而易 见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而 共享内存则只拷贝两次数据[1]:一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内存时,并不总是读写少量数据后就 解除映射,有新的通信时,再重新建立共享内存区域。而是保持共享区域,直到通信完毕为止,这样,数据内容一直保存在共享内存中,并没有写回文件。共享内存 中的内容往往是在解除映射时才写回文件的。因此,采用共享内存的通信方式效率是非常高的。
Linux的2.2.x内核支持多 种共享内存方式,如mmap()系统调用,Posix共享内存,以及系统V共享内存。linux发行版本如Redhat 8 ......
调整的目的就是为了消耗最小的资源来完成功能,通过查看执行计划和各种统计信息来分辨调整后的sql对资源的耗费情况,来找出一个成本最小的sql语句
检查系统的I/O问题
vmstate能检查整个系统的iostat(IO statistics)
查看该SQL的response time(db block gets/consistent gets/physical reads/sorts (disk)) ......
Questions
I have a simple app that
uses an SQL Express 2005 database. When the user closes the app, I want
to give the option to back up the database by making a copy in another
directory. However, when I try to do it, I get "The process cannot
access the file '...\Pricing.MDF' because it is being used by another
process." I closed the connection, disposed the connection, set it to
nothing, and GC.Collect(), but it makes no difference. My connection
string is "Data
Source=.\SQLEXPRESS2005;AttachDbFilename=|DataDirectory|\Pricing.mdf;Integrated
Security=True; User Instance=True" and I just keep using the same
connection throughout. I didn't see where I could detach the database
to counter the attach in the connection string.
1 - How do I RELEASE the thing? 2 - Is there a better way than just
copying the database? The app is for my husband only, so I will be able
to handle it if he actually does need to restore from backup.
Thanks!
----------------- ......
参考文献:http://www.cnblogs.com/chenxizhang/archive/2009/04/23/1441913.html
SQL Server提供四种方式连接数据库服务器:
1. share memory: 只适用于客户端和服务器端在同一台机器上,才能采用的连接
2. Named pipe:
在局域网(LAN)内实现连接,一个进程使用一部分的内存来向进程的另一端传递消息,一个进程的输出是另外一个进程的输入.
3. TCP/IP: 因特网上使用,可以用于不同的硬件体系结构和操作系统的计算机网络之间进行通信(端口号)
4. VIA:虚拟接口适配器,与一种特定硬件一起使用的专门化的协议,至今没有用过。。。。
当我们使用客户端命令行工具如sqlcmd.exe进行访问时,采用如下的顺序进行解析:
首先,会使用sqlcmd.exe 命令行工具输入的连接字符串所描述的协议进行连接
其次,如果在sqlcmd.exe命令行没有描述有关的协议,则察看客户端配置管理器相关的别名设置中所描述的信息进行连接
最后,如果在别名信息中没有提供相关的设置信息,则会根据客户端设置的协议的顺序,依次尝试与服务器端进行连接。
下面介绍这四种方式的连接命令:
默认情况下,我们一般用如下命令进行连接:
sqlcmd -S HT-WINSERVER1 ----连接默认实例
sqlcmd -S HT-WINServer1\mss ......
select * from tableName where datediff(week,dateField,getdate())=0
这样查出来的结果是从星期天到星期六(老外默认星期天是一周的第一天).
如果想以星期一作为第一天的话,两个时间都需要减一,如下:
select * from tableName where datediff(week,dateField-1,getdate()-1)=0 ......