15 June 2011 0 Comments

SQL Server Denali – Launch Site…

www.sqlserverlaunch.com – Includes:

27 April 2011 0 Comments

Reporting Services LogViewer Tool

Reporting Services LogViewer Tool Sample is developed in Microsoft Windows Presentation Foundation ( WPF ) in Visual C# using Microsoft Visual Studio 2010.

23 March 2011 0 Comments

SQL Server 连接加密 (2) — SQL Server connection encyption

上篇文章 中我们讲到了 SQL Server 在建立连接时的加密。今天我们继续讨论 SQL Server 在建立完连接后在该连接上的数据传送加密。   默认情况下 SQL Server 是否加密收发的数据包 答案是否定的。 SQL Server 默认只在建立连接时进行加密以保护客户端发送过来的账户登录信息 在上篇文章中所做的实验,我们可以看到 SSL 已经启用,并且在所有网络包中都找不到密码的明文。但是如果你选中任意一个 TDS:SQLBatch 的数据包,你可以看到类似如下的结果:     可以清楚的看到客户端发送的查询语句。如果你查看 SQL Server 返回来的数据包的话,你也同样能看到查询结果的数据明文。那么怎么来加密客户端和 SQL Server 之间传输的数据呢? 加密 SQL Server 收发的数据包 我们可以通过 SQL Server 的 configuration Manager 来配置 SQL Server 使得它加密和客户端之间的数据交换。在 Configuration Manager 中分别有两个地方来配置。 1.        SQL Server 服务器端的加密配置。   如上图所示,右键点击“ Protocols for MSSQLSERVER ”,选择属性,你就可以看到 Force Encryption 选项。默认状态下这个选项是设置为 No 的,也就是说 SQL Server 不进行加密。 当把该选项设置为 on 之后, SQL Server 就会要求对所有它和客户端之间的数据包传送进行加密,无论客户端是否配置为要求加密。此时用来加密的秘钥仍旧是之前在建立连接阶段使用的证书。 需要注意的是,如果你是手动配置证书给 SQL Server 的话,你可能会发现一个现象。即使该证书已经过了有效期,或者该证书的根证书不受客户端的信任,客户端仍旧可以顺利的使用这个证书和 SQL Server 进行交流。这是一个 by desing 的行为。如果你要求你的客户端一定要信任该证书才可以连接的话,你就必须要配置客户端的加密选项。 如果你对如何手动配置证书不熟悉的话,可以参考 这篇文章 。 2.

14 February 2011 0 Comments

SQL Server 2008 R2 Business Intelligence Training Course

SQL Server 2008 R2 Business Intelligence Training Course New Content: Build Your First Microsoft BI Solution with SQL Server 2008 R2 This update includes a rich new set of content designed for developers who want to learn how to build their first Microsoft Business Intelligence solution with SQL Server 2008 R2. Microsoft BI solutions leverage your existing technology investments in .NET, SQL Server and Office to develop rich integrated reporting and analytics experiences that empower users to gain access to accurate, up-to-date information for better, more relevant decision making.

11 February 2011 0 Comments

如何监测谁用了SQL Server的Tempdb空间?

  Tempdb 系统数据库是一个全局资源,供连接到 SQL Server 实例的所有用户使用。在现在的 SQL Server 里,其使用频率可能会超过用户的想象。如果 Tempdb 空间耗尽,许多操作将不能完成。 作为一个支持工程师,会被经常问到象“我的 Tempdb 为什么这么大?”“是谁把我的 Tempdb 空间用完的?”在 SQL 2000 的时候,这个问题很难回答。好在 SQL 2005 以后,引入了一 张新的管理视图: sys.dm_db_file_space_usage 。通过查询这张视图,能了解 tempdb 的空间使用情况,能知道 tempdb 的空间是被哪一块对象使用掉的,是用户对象 (user_object_reserved_page_count 字段 ) ,还是系统对象( internal_object_reserved_page_count 字段),还是版本存储区( version_store_reserved_page_count 字段)。 在讨论 Tempdb 空间使用之前,我们先简单介绍一下通常什么操作会大量使用 Tempdb 。在 SQL 2005 和 SQL 2008 里,使用 Tempdb 空间的远远不止是临时表。常见的使用对象有: 用户对象 (user_object_reserved_page_count) 用户对象由用户显式创建。这些对象可以位于用户会话的作用域中,也可位于创建对象所用例程的作用域中。 可以是存储过程、触发器或用户定义函数。 用户对象可以是下列项之一: 用户定义的表和索引 系统表和索引 全局临时表和索引 局部临时表和索引 table 变量 表值函数中返回的表 内部对象 ( internal_object_reserved_page_count ) 内部对象是根据需要由 SQL Server 数据库引擎创建的,用于处理 SQL Server 语句。 内部对象可以在语句的作用域中创建和删除。 内部对象可以是下列项之一: 用于游标。 用于哈希联接或哈希聚合操作的查询。 某些 GROUP BY 、 ORDER BY 或 UNION 查询的中间排序结果。 版本存储 ( version_store_reserved_page_count ) 版本存储区主要用来支持 Snapshot 事务隔离级别,以及 SQL 2005 以后推出的一些其他提高数据库并发度的新功能。 由此可见, 光从用户发过来的语句本身,是很难判断这个连接的操作是否会使用 Tempdb 的。 一个典型的例子,就是某些查询。如果表格上有良好的索引做支持, SQL Server 不需要做 哈希联接 (Hash Join) ,那这个查询就不会用 Tempdb 。反之,如果表格很大,又没有好的索引,那 Tempdb 使用量就可能不小。 tempdb 空间使用的一大特点,是只有一部分对象,例如用户创建的临时表、 table 变量等,可以用 sys.allocation_units 和 sys.partitions 这样的管理视图来管理。许多内部对象和版本存储在这些管理视图里没有体现。所以, sp_spaceused 的结果和真实使用会有很大差异, tempdb 的空间使用是不能用 sp_spaceused 来跟踪的。必须借助 sys.dm_db_file_space_usage 这样的管理视图和管理函数,才能看到全貌。   下面以一个实例,讨论一下如何用 DBCC 命令、管理视图 (DMV) 以及管理函数 (DMF) 来监视是什么语句正在使用 tempdb 。 为了使结果简单,我们在测试之前先把 SQL Server 重起一次。 然后我们在 Management Studio 里做一个连接(连接 A ),将下面语句输入。这些语句会使用 tempdb 的空间。   select @@spid go use adventureworks go select getdate() go select * into #mySalesOrderDetail from Sales.SalesOrderDetail — 创建一个 temp table — 这个操作应该会申请 user objects page go waitfor delay ’0:0:2′ select getdate() go drop table #mySalesOrderDetail — 删除一个 temp table — 这个操作后 user object page 数量应该会下降 go waitfor delay ’0:0:2′ select getdate() go select top 100000 * from [Sales].[SalesOrderDetail] INNER JOIN [Sales].[SalesOrderHeader] ON [Sales].[SalesOrderHeader] .[SalesOrderID] = [Sales].[SalesOrderHeader].[SalesOrderID]; — 这里做了一个比较大的 join. — 应该会有 internal objects 的申请 .

11 February 2011 0 Comments

BizSpark Startup Flickchart on Mashable

Cool story on Flickchart on Mashable. 117 Million ratings

8 February 2011 0 Comments

FAQ: SQL Azure

В продолжение к FAQ по Windows Azure Platform публикую ответы на наиболее часто задаваемые вопросы по SQL Azure. Каковы основные преимущества SQL Azure Database? Использование SQL Azure обеспечивает множество преимуществ.

6 February 2011 0 Comments

SQL Server 2008 Column Change Tracking

I could not find a good description of how SQL Server Change Tracking determines if a column changed so I decided to give it a try in 2008 R2 using the script below.  Basically in the last update statement I update a column to the same value which already exists in the column.  SQL appears to just record that the column was involved in the update statement.  Unfortunately this means that anyone who desires to perform sync operations at the column level must write more complicated row update logic. Before running the script manually create a database called ‘TrackingTest’. CREATE TABLE [dbo].[Test](     [Id] [int] IDENTITY(1,1) NOT NULL,     [A] [varchar](50) NULL,     [B] [int] NULL CONSTRAINT [PK_Test] PRIMARY KEY CLUSTERED (     [Id] ASC )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY] ) ON [PRIMARY] GO ALTER DATABASE TrackingTest SET CHANGE_TRACKING = ON (CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON) ALTER TABLE TrackingTest.dbo.Test ENABLE CHANGE_TRACKING WITH (TRACK_COLUMNS_UPDATED = ON); GO INSERT INTO dbo.Test (A,B) VALUES (‘C’, 50) INSERT INTO dbo.Test (A,B) VALUES (‘D’, 50) SELECT ‘SYS_CHANGE_COLUMS = NULL means that all columns changed.’ SELECT     CT.Id, CT.SYS_CHANGE_OPERATION,     CT.SYS_CHANGE_COLUMNS, CT.SYS_CHANGE_CONTEXT,     CHANGE_TRACKING_IS_COLUMN_IN_MASK (COLUMNPROPERTY(OBJECT_ID(‘dbo.Test’), ‘A’, ‘ColumnId’),CT.SYS_CHANGE_COLUMNS) AS A_CHANGED,     CHANGE_TRACKING_IS_COLUMN_IN_MASK (COLUMNPROPERTY(OBJECT_ID(‘dbo.Test’), ‘B’, ‘ColumnId’),CT.SYS_CHANGE_COLUMNS) AS B_CHANGED FROM     CHANGETABLE(CHANGES dbo.Test, NULL) AS CT DECLARE @synchronization_version BIGINT SET @synchronization_version = CHANGE_TRACKING_CURRENT_VERSION(); SELECT * FROM dbo.Test SELECT ‘Changing both columns via "UPDATE dbo.Test SET A=”E”, B=51"’ UPDATE dbo.Test SET A=’E', B=51 SELECT * FROM dbo.Test SELECT     CT.Id, CT.SYS_CHANGE_OPERATION,     CT.SYS_CHANGE_COLUMNS, CT.SYS_CHANGE_CONTEXT,     CHANGE_TRACKING_IS_COLUMN_IN_MASK (COLUMNPROPERTY(OBJECT_ID(‘dbo.Test’), ‘A’, ‘ColumnId’),CT.SYS_CHANGE_COLUMNS) AS A_CHANGED,     CHANGE_TRACKING_IS_COLUMN_IN_MASK (COLUMNPROPERTY(OBJECT_ID(‘dbo.Test’), ‘B’, ‘ColumnId’),CT.SYS_CHANGE_COLUMNS) AS B_CHANGED FROM     CHANGETABLE(CHANGES dbo.Test, @synchronization_version) AS CT SET @synchronization_version = CHANGE_TRACKING_CURRENT_VERSION(); SELECT * FROM dbo.Test SELECT ‘Only setting column A to the value already in the column via "UPDATE dbo.Test SET A=”E”"’ UPDATE dbo.Test SET A=’E’ SELECT * FROM dbo.Test SELECT ‘Now SYS_CHANGE_COLUMS has a value showing that only A was changed’ SELECT ‘To bad it isn”t smart enough to know that the data did not change!’ SELECT     CT.Id, CT.SYS_CHANGE_OPERATION,     CT.SYS_CHANGE_COLUMNS, CT.SYS_CHANGE_CONTEXT,     CHANGE_TRACKING_IS_COLUMN_IN_MASK (COLUMNPROPERTY(OBJECT_ID(‘dbo.Test’), ‘A’, ‘ColumnId’),CT.SYS_CHANGE_COLUMNS) AS A_CHANGED,     CHANGE_TRACKING_IS_COLUMN_IN_MASK (COLUMNPROPERTY(OBJECT_ID(‘dbo.Test’), ‘B’, ‘ColumnId’),CT.SYS_CHANGE_COLUMNS) AS B_CHANGED FROM     CHANGETABLE(CHANGES dbo.Test, @synchronization_version) AS CT Results are:

1 February 2011 0 Comments

System Center Operations Manager 2007 R2 Cumulative Update 4

Le correctif cumulatif 4 (CU4) de System Center Operations Manager 2007 R2 (OpsMgr 2007 R2) est disponible à l’emplacement suivant : http://www.microsoft.com/downloads/details.aspx?FamilyID=39a871e0-d996-4568-be5d-2edb6f539330 Il n’est pas sitôt disponible que mon collègue Kevin Holman vient d’en fait un article sur son premier retour d’expérience sur son blog . L’article de la base de connaissances est le kb2449679 . Dans les points importants à retenir, il y a le support de la mise à jour du moteur de la base de données vers SQL Server 2008 R2.

1 February 2011 0 Comments

无法使用SQL login去登陆SQL Server – ‘Password did not match’

问题描述: 在某一台机器上的 management studio ,始终无法使用 SQL login 去登陆 SQL Server 。但是如果在其他的机器上,使用同样的 SQL login 是可以登陆 SQL Server 的。 错误信息: ‘Password did not match ‘   诊断步骤: 1.

7 January 2011 0 Comments

SQL Server 2008 R2 Express ( 無償 ) のセットアップ手順

前回のブログ記事の最後で、「次回は、WebSitePanel の日本語化について紹介したいと思います。」 と書きながら、業務上の都合から今回は SQL Server 2008 R2 Express のセットアップ手順を紹介させていただきます。 その前に、SQL Server  をご存じない方々のために、SQL Server  Express について簡単にご紹介しておきましょう。 SQL Server  Express とは マイクロソフトは有償製品として SQL Server というデータベース サーバーをリリースしています。 SQL Server は、強力な高可用性と BI (Business Intelligence) 機能を備えており、金融、証券などの世界中の多くのミッション クリティカルな現場で採用されています。またパフォーマンスにおいても、第三者調査機関が実施するベンチマークテストにて常に上位をキープし続ける実績と実力をもっています。 SQL Server には 複数のエディション があります。そのもっとも標準的なエディションから、データベース サーバーとして必要な機能のみを抽出したものが無償の SQL Server Express になります。 SQL Server Express は、学習や、デスクトップおよび小規模サーバー アプリケーションの構築、ISV による再配布などに使用することができます。 SQL Server Express の種類 現在の最新の SQL Server 2008 R2 Express では、目的にあわせ複数種類のインストール パッケージが用意されています。 各インストール パッケージの内訳は以下のとおりです。 インストール イメージ 説明 Microsoft® SQL Server® 2008 Express DB エンジンのみ [詳細] Microsoft® SQL Server® 2008 Express with Tools DB エンジンとグラフィカルな管理ツール [詳細] Microsoft® SQL Server® 2008 Express with Advanced Services DB エンジンとグラフィカルな管理ツール、レポート、フルテキスト検索機能 [詳細] Microsoft® SQL Server® 2008 Express Edition Service Pack 1 DB エンジンのみ (SQL Server 2008 SP1 適用済) また、SQL Server 2008 R2 Express に関連するその他のインストール パッケージには以下のものがあります。 インストール イメージ 説明 Microsoft® SQL Server® 2008 Management Studio Express グラフィカルな管理ツールのみ SQL Server 2008 Service Pack 1 SQL Server 2008 のサービスパック 各インストール パッケージの入手先は以下のとおりです。 SQL Server 2008 Express Microsoft® SQL Server® 2008 Express http://www.microsoft.com/downloads/details.aspx?familyid=58CE885D-508B-45C8-9FD3-118EDD8E6FFF&displaylang=ja Microsoft® SQL Server® 2008 Express with Tools http://www.microsoft.com/downloads/details.aspx?familyid=7522A683-4CB2-454E-B908-E805E9BD4E28&displaylang=ja Microsoft® SQL Server® 2008 Express with Advanced Services http://www.microsoft.com/downloads/details.aspx?familyid=B5D1B8C3-FDA5-4508-B0D0-1311D670E336&displaylang=ja 関連ツール Microsoft® SQL Server® 2008 Management Studio Express http://www.microsoft.com/downloads/details.aspx?familyid=08E52AC2-1D62-45F6-9A4A-4B76A8564A2B&displaylang=ja SQL Server 2008 Service Pack 1 http://www.microsoft.com/downloads/details.aspx?familyid=66AB3DBB-BF3E-4F46-9559-CCC6A4F9DC19&displaylang=ja   SQL Server 2008 Express のインストール SQL Server 2008 Express のインストールは、ダウンロードした msi ファイルを使用し、セットアップウィザードのガイドに従い作業を進めます。 以下に具体的なインストールの手順を示します。なお、この手順では、Microsoft® SQL Server® 2008 Express with Advanced Services のインストール msi を使用します。これは、今月に序章から 2 章までが公開予定の、『PHP on ガイドライン』 の後半の章で、PHP アプリケーションから SQL Server のレポート機能を使用する方法が紹介されるためです。 インストール手順 SQL Server 2008 R2 Express のインストール パッケージと、インストールに必要となるモジュールのインストールパッケージを入手します。 SQL Server 2008 R2 をインストールする先の環境には、以下のものがインストールされている必要があります。 Microsoft .Net Framework 3.5 SP1 http://go.microsoft.com/fwlink/?LinkId=120550 Windows インストーラ 4.5 http://go.microsoft.com/fwlink/?LinkID=123422 ダウンロードした SQL Server 2008 R2 Express インストール msi ファイルをダブルクリックします。 環境によっては、 .NET Framework コアロールを有効にするためのダイアログボックスが表示されるので [OK] ボタンをクリックします。 [ SQL Server インストール センター ] の画面が表示されるので、同画面内の 「新規インストールを実行するか、既存のインストールに機能を追加します。」 リンクをクリックします。  [ ライセンス条項 ] の画面に遷移するので、内容を確認後 [ライセンス条項に同意する] チェックボックスにチェックをつけ [ 次へ ] ボタンをクリックします。   インストールに必要な要件を満たしているかチェックが行われます。イ���ストールが可能な環境であれば、[ 次へ ] ボタンがクリック可能になっているので、[ 次へ ] ボタンをクリックします。 [ 機能の選択 ] 画面が表示されるので、[ 機能 ] リストでインストールする機能を選択します。 [ インスタンスの構成 ] 画面が表示されるので、既定のまま [ 次へ ]  ボタンをクリックします。 この画面では、データベースのインスタンス名を任意に指定することができますが、公開されている多くの技術文章のサンプルでは、既定のインスタンス名である “ SQLExpress ” が使用されていますので、学習や検証に使用するのであれば既定のままが良いでしょう。ただし既定のインスタンス名を使用するということは、第三者にもインスタンス名が推測されやすいということでもあるので、運用環境での使用時には、問題がないか十分に検討を行ってください。 [ サーバーの構成 ] 画面が表示されるので、既定のまま [ 次へ ] ボタンをクリックします。 この画面では SQL Server と、付帯サービスが使用する動作アカウントとスタートアップの指定が可能です。サービスの動作アカウントは、既定では Web アプリケーションにも使用される NETWORK SERVICE アカウントが指定されています。 [ データベース エンジン 構成 ] 画面が表示されるので、同画面の [ アカウントの準備 ] タブ  – [ 認証モード ] セクションで [ 混合モード ] オプションボタンにチェックをつけ 、 システム管理者 (sa) のパスワードを指定します。 次に、[ SQL Server 管理者の指定 ] グループで、[  現在のユーザーの追加 ] ボタンをクリックし、現在インストールを行っているユーザーのアカウントを追加しして [ 次へ ] ボタンをクリックします。 [ Reporting Services の構成 ] 画面が表示されるので既定のまま [ 次へ] ボタンをクリックします。この画面は Microsoft® SQL Server® 2008 Express with Advanced Services 以外の SQL Express では表示されません。 [ エラーレポート ] 画面が表示されるので、SQL Server のエラー情報をマイクロソフトに提供するのであれば、チェックボックスにチェックをつけ [ 次へ ] ボタンをクリックします。 インストールが開始され [ インストールの進行状況 ] 画面が表示されるので、完了するまで待ちます。 [ 完了 ] 画面にインストールが正常に終了したことを示すステータスが確認できたら [ 閉じる ] ボタンをクリックしてセットアップ ウィザードを終了します。 以上で Microsoft® SQL Server® 2008 Express with Advanced Services のインストールは完了です。 表示されている [ SQL Server インストール センター ] は、画面右上の [X] ボタン ( 閉じるボタン ) をクリックして 閉じてしまって構いません。 インストールが完了したら、SQL Server 2008 の管理ツールである SQL Server Management Studio を使用してデータベースに接続し、SQL Server サービスが動作していることを確認してみましょう。 なお、SQL Server サービスが動作しているか否かは、Windows の [ コントロールパネル ] – [ 管理サービス ] の [ サービス ] のサービスリストからも確認することができますので、管理ツールをインストールしない場合には、こちらを使用すして確認することもできすます。 SQL Server 2008 R2 Express への管理ツールからの接続 SQL Server の管理は、管理ツール SQL Server Management Studio を使用して行います。 SQL Server Management Studio から SQL Server に接続すには、以下の手順を実行します。 SQL Server Management Studio から SQL Server への接続手順 [ スタート ] ボタンをクリックし、[ 全てのプログラム ] – [ SQL Server 2008 R2 ] – [ SQL Server Management Studio ] を選択します。 [ サーバーへの接続 ] ダイアログボックスが表示されるので、SQL Server 2008 のインストール時の [ SQL Server 管理者の指定 ] で [ 現在のユーザーの追加 ] を行っている場合は既定のまま [ 接続 ] ボタンをクリックします。 現在 Windows にログインしているユーザーアカウントではなく、SQL Server の管理者アカウントで接続する場合は [認証] ドロップダウンリストで “SQL Server 認証” を選択し、[ ログイン ] ボックスに “sa” ( SQL Server 既定のシステム管理者 ) を入力し、[ パスワード ] ボックスには、インストール時に指定したパスワードを入力します。 正しく認証が通れば、SQL Server Management Studio の管理画面が表示されます。 以上で、SQL Server Management Studio を使用して SQL Server の管理を行うことができるようになりました。   SQL Server 2008 R2 の管理方法 SQL Server 2008 R2 の管理方法、使用方法については SQL Server 2008 R2 オンライン ブックの内容をご参照ください。 SQL Server 2008 R2 オンライン ブックは以下の URL より入手することができます。 SQL Server 2008 R2 オンライン ブック http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=c18bad82-0e5f-4e82-812b-5b23e5d52b9c SQL Server オンライン ブックの使い方 http://msdn.microsoft.com/ja-jp/library/ms166019.aspx   まとめ SQL Server 2008 R2 Express は、有償製品である SQL Server 2008 R2 からデータベース サーバーとして必要な機能を抽出した無償製品です。 Microsoft Office 製品、.NET アプリケーションの親和性の高さはいうに及ばず、最近では高い品質の PHP 向けのデータぺースドライバーもリリースされています。 Microsoft Drivers for PHP for SQL Server http://www.microsoft.com/downloads/en/details.aspx?FamilyID=80e44913-24b4-4113-8807-caae6cf2ca05 もし、取得したデータを将来的にビジネスにきちんと活かせるようにしたい、と考えられるのであれば、SQL Server Express を使用することをお薦めしたいところです。 サービスの規模が小さいうちは無償の SQL Server Express でデータを扱い、サービスが成長し、大規模かつミッションクリティカルなシステムが必要となった場合には、そういった実績がある有償版の SQL Server にそのままデータを移行することができるからです。 これからビジネスを成功させる予定がある方はぜひ SQL Server Express をお使いいただければと思います。

10 December 2010 0 Comments

Microsoft Web Platform Installer mal anders erklärt

Mit dem kostenfrei von uns angebotenen Web Platform Installer (Web PI) bleiben Sie immer auf dem Laufenden. Er hilft Ihnen, immer die aktuellen Komponenten unserer Web Plattform herunterzuladen und einzusetzen.