èšç®ãããåã¯ã蚺æãé£ããããã©ãŒãã³ã¹ã®åé¡ãåŒãèµ·ããå¯èœæ§ããããŸãããã®èšäºã§ã¯ãããã€ãã®åé¡ãšããã€ãã®è§£æ±ºçã«ã€ããŠèª¬æããŸãã
èšç®åã¯ãããŒãã«å®çŸ©ã«èšç®ãåã蟌ãããã®äŸ¿å©ãªæ¹æ³ã§ãããã ããç¹ã«åŒãè€éã«ãªããã¢ããªã±ãŒã·ã§ã³ã®èŠæ±ãå³ãããªããããŒã¿éãå¢ãç¶ãããšãããã©ãŒãã³ã¹ã®åé¡ãçºçããå¯èœæ§ããããŸãã
èšç®åã¯ãããŒãã«å ã®ä»ã®åã®å€ã«åºã¥ããŠå€ãèšç®ãããä»®æ³åã§ããããã©ã«ãã§ã¯ãèšç®ãããå€ã¯ç©ççã«ä¿åãããŸãããã代ããã«SQLServerããã¹ãŠã®åèŠæ±ã§èšç®ããŸããããã«ãããããã»ããµã®è² è·ãå¢å ããŸãããããŒãã«ãå€æŽããããšãã«ä¿æããå¿ èŠã®ããããŒã¿ã®éãæžå°ããŸãã
å€ãã®å Žåãéæ°žç¶çãªèšç®åã¯CPUãéäžçã«äœ¿çšããã¯ãšãªãé ãããã¢ããªã±ãŒã·ã§ã³ãããªãŒãºãããŸãã幞ããSQL Serverã«ã¯ãèšç®åã®ããã©ãŒãã³ã¹ãåäžãããããã€ãã®æ¹æ³ããããŸããæ°žç¶åãããèšç®åãäœæãããããããã«ã€ã³ããã¯ã¹ãä»ãããããŸãã¯ãã®äž¡æ¹ãè¡ãããšãã§ããŸãã
ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã®ç®çã§ã4ã€ã®åæ§ã®ããŒãã«ãäœæããWideWorldImportersãã¢ããŒã¿ããŒã¹ããã®åäžã®ããŒã¿ããããã«å ¥åããŸãããåããŒãã«ã«ã¯åãèšç®åããããŸããã2ã€ã®ããŒãã«ã«ã¯æ°žç¶æ§ãããã2ã€ã®ããŒãã«ã«ã¯ã€ã³ããã¯ã¹ããããŸããçµæã¯æ¬¡ã®ãªãã·ã§ã³ã§ãã
- ããŒãã«
Orders1
ã¯ä¿åãããŠããªãèšç®åã§ãã - ããŒãã«
Orders2
ã¯æ°žç¶çãªèšç®åã§ãã - ããŒãã«
Orders3
ã¯ãã€ã³ããã¯ã¹ä»ãã®éæ°žç¶çãªèšç®åã§ãã - ããŒãã«
Orders4
ã¯ãã€ã³ããã¯ã¹ä»ãã®æ°žç¶çãªèšç®åã§ãã
èšç®ãããåŒã¯éåžžã«åçŽã§ãããŒã¿ã»ããã¯éåžžã«å°ããã§ãããã ããæ°žç¶çã§ã€ã³ããã¯ã¹ä»ãã®èšç®åã®ååãšããããããã©ãŒãã³ã¹ã®åé¡ã®è§£æ±ºã«ã©ã®ããã«åœ¹ç«ã€ãã瀺ãã ãã§ååã§ãã
ä¿åãããŠããªãèšç®å
ããããããªãã®ç¶æ³ã§ã¯ãããŒã¿ã®ä¿åãã€ã³ããã¯ã¹ã®äœæãåé¿ããããããŸãã¯é決å®è«çãªåã§äœ¿çšããããã«ãéæ°žç¶çãªèšç®åãå¿ èŠã«ãªãå ŽåããããŸããããšãã°ãSQL Serverã¯ãWITH SCHEMABINDINGãé¢æ°å®çŸ©ã«ãªãå Žåãã¹ã«ã©ãŒUDFãé決å®è«ãšããŠæ±ããŸãããã®é¢æ°ã䜿çšããŠæ°žç¶çãªèšç®åãäœæããããšãããšãæ°žç¶åãããåãäœæã§ããªããšãããšã©ãŒãçºçããŸãã
ãã ããã«ã¹ã¿ã é¢æ°ã¯ç¬èªã®ããã©ãŒãã³ã¹ã®åé¡ãåŒãèµ·ããå¯èœæ§ãããããšã«æ³šæããŠãã ãããããŒãã«ã«é¢æ°ãå«ãèšç®åãå«ãŸããŠããå Žåãã¯ãšãªãšã³ãžã³ã¯åæå®è¡ã䜿çšããŸããïŒSQL Server 2019ã䜿çšããŠããå Žåãé€ãïŒãèšç®åãã¯ãšãªã§æå®ãããŠããªãå Žåã§ãã倧èŠæš¡ãªããŒã¿ã»ããã®å Žåãããã¯ããã©ãŒãã³ã¹ã«å€§ããªåœ±é¿ãäžããå¯èœæ§ããããŸããé¢æ°ã¯ãUPDATEã®å®è¡ãé ããããªããã£ãã€ã¶ãèšç®ãããåã®ã¯ãšãªã®ã³ã¹ããèšç®ããæ¹æ³ã«åœ±é¿ãäžããå¯èœæ§ããããŸããããã¯ãèšç®åã§é¢æ°ã䜿çšããŠã¯ãªããªããšããæå³ã§ã¯ãããŸããããæ éã«æ±ãå¿ èŠããããŸãã
é¢æ°ã䜿çšãããã©ããã«é¢ä¿ãªããéæ°žç¶çãªèšç®åã®äœæã¯éåžžã«ç°¡åã§ãã次ã®æ瀺
CREATE TABLE
Orders1
èšç®åãå«ãããŒãã«ãå®çŸ©ããŸãCost
ã
USE WideWorldImporters;
GO
DROP TABLE IF EXISTS Orders1;
GO
CREATE TABLE Orders1(
LineID int IDENTITY PRIMARY KEY,
ItemID int NOT NULL,
Quantity int NOT NULL,
Price decimal(18, 2) NOT NULL,
Profit decimal(18, 2) NOT NULL,
Cost AS (Quantity * Price - Profit));
INSERT INTO Orders1 (ItemID, Quantity, Price, Profit)
SELECT StockItemID, Quantity, UnitPrice, LineProfit
FROM Sales.InvoiceLines
WHERE UnitPrice IS NOT NULL
ORDER BY InvoiceLineID;
èšç®åãå®çŸ©ããã«ã¯ããã®ååã®åŸã«ASããŒã¯ãŒããšåŒãæå®ããŸãããã®äŸã§ã¯ãä¹ç®ãããŠãã
Quantity
ããšã«ãããPrice
ããã³æžç®ããŸãProfit
ãããŒãã«ãäœæããåŸSales.InvoiceLines
ãWideWorldImportersããŒã¿ããŒã¹ããŒãã«ã®ããŒã¿ã䜿çšããŠINSERTãå
¥åããŸãã次ã«ãSELECTãå®è¡ããŸãã
SELECT ItemID, Cost FROM Orders1 WHERE Cost >= 1000;
ãã®ã¯ãšãªã¯ã22,973è¡ããŸãã¯WideWorldImportersããŒã¿ããŒã¹ã«ãããã¹ãŠã®è¡ãè¿ãå¿ èŠããããŸãããã®ã¯ãšãªã®å®è¡èšç»ãå³1ã«ç€ºããŸãã
å³1.Orders1ããŒãã«ã«å¯Ÿããã¯ãšãªã®å®è¡èšç»
æåã«æ³šæããã®ã¯ãããŒã¿ãååŸããå¹ççãªæ¹æ³ã§ã¯ãªãã¯ã©ã¹ã¿ãŒåã€ã³ããã¯ã¹ã¹ãã£ã³ã§ããããããããã ããåé¡ã§ã¯ãããŸããã Clustered Index Scanã®ããããã£ã§è«çèªã¿åãïŒå®éã®è«çèªã¿åãïŒã®æ°ãèŠãŠã¿ãŸãããïŒå³2ãåç §ïŒã
å³2.Orders1ããŒãã«ãç §äŒããããã®è«çèªã¿åã
è«çèªã¿åãã®æ°ïŒãã®å Žåã¯1108ïŒã¯ãããŒã¿ãã£ãã·ã¥ããèªã¿åãããããŒãžã®æ°ã§ããç®æšã¯ããã®æ°ãå¯èœãªéãæžããããšã§ãããããã£ãŠãèŠããŠä»ã®ãªãã·ã§ã³ãšæ¯èŒãããšäŸ¿å©ã§ãã
è«çèªã¿åãã®æ°ã¯
SET STATISTICS IO ON
ãSELECTãå®è¡ããåã«ã¹ããŒãã¡ã³ããå®è¡ããããšã«ãã£ãŠãååŸã§ããŸãã CPUãšåèšæéã衚瀺ããã«ã¯ãSET STATISTICS TIME ON
ãŸãã¯ã¯ãšãªå®è¡ãã©ã³ã®SELECTã¹ããŒãã¡ã³ãã®ããããã£ã衚瀺ããŸãã
泚ç®ã«å€ãããã1ã€ã®ãã€ã³ãã¯ãå®è¡èšç»ã«2ã€ã®ComputeScalarã¹ããŒãã¡ã³ããããããšã§ãã1ã€ç®ïŒå³åŽïŒã¯ãè¿ãããåè¡ã®èšç®ãããåå€ã®èšç®ã§ããåã®å€ã¯ãã®å Žã§èšç®ãããããããã®åã«ã€ã³ããã¯ã¹ãäœæããªãéããéæ°žç¶çãªèšç®åã§ãã®æé ãåé¿ããããšã¯ã§ããŸããã
å Žåã«ãã£ãŠã¯ãéæ°žç¶çãªèšç®åã¯ããããä¿åããããã€ã³ããã¯ã¹ã䜿çšãããããã«å¿ èŠãªããã©ãŒãã³ã¹ãæäŸããŸããããã«ãããã¹ãã¬ãŒãžã¹ããŒã¹ãç¯çŽãããã ãã§ãªããããŒãã«ãŸãã¯ã€ã³ããã¯ã¹ã®èšç®å€ãæŽæ°ãããªãŒããŒããããåé¿ãããŸãããã ããå€ãã®å Žåãéæ°žç¶çãªèšç®åã¯ããã©ãŒãã³ã¹ã®åé¡ã«ã€ãªããããã代æ¿æ段ãæ¢ãå§ããå¿ èŠããããŸãã
æ°žç¶çãªèšç®å
ããã©ãŒãã³ã¹ã®åé¡ã解決ããããã«ãã䜿çšãããææ³ã®1ã€ã¯ãèšç®åãæ°žç¶åãšããŠå®çŸ©ããããšã§ãããã®ã¢ãããŒãã§ã¯ãåŒãäºåã«èšç®ãããçµæãæ®ãã®ããŒãã«ããŒã¿ãšãšãã«ä¿åãããŸãã
åãæ°žç¶çã§ããããã«ã¯ãããã決å®è«çã§ããå¿ èŠããããŸããã€ãŸããåŒã¯åãå ¥åã«å¯ŸããŠåžžã«åãçµæãè¿ãå¿ èŠããããŸããããšãã°ãæ»ãå€ã¯åžžã«å€åãããããååŒã§GETDATEé¢æ°ã䜿çšããããšã¯ã§ããŸããã
æ°žç¶çãªèšç®åãäœæããã«
PERSISTED
ã¯ã次ã®äŸã«ç€ºãããã«ãåå®çŸ©ã«ããŒã¯ãŒããè¿œå ããå¿
èŠããããŸãã
DROP TABLE IF EXISTS Orders2;
GO
CREATE TABLE Orders2(
LineID int IDENTITY PRIMARY KEY,
ItemID int NOT NULL,
Quantity int NOT NULL,
Price decimal(18, 2) NOT NULL,
Profit decimal(18, 2) NOT NULL,
Cost AS (Quantity * Price - Profit) PERSISTED);
INSERT INTO Orders2 (ItemID, Quantity, Price, Profit)
SELECT StockItemID, Quantity, UnitPrice, LineProfit
FROM Sales.InvoiceLines
WHERE UnitPrice IS NOT NULL
ORDER BY InvoiceLineID;
ãã®ããŒãã«ã¯ãåã«ããŒã¯ãŒããå«ãŸããŠããããšãé€ããŠãããŒãã«ãš
Orders2
ã»ãŒåãã§ãã SQL Serverã¯ãè¡ãè¿œå ãŸãã¯å€æŽããããšããã®åã«èªåçã«ããŒã¿ãå
¥åããŸãããã¡ãããããã¯ããŒãã«ãããŒãã«ãããå€ãã®ã¹ããŒã¹ãå ããããšãæå³ããŸããããã¯ãä¿åãããããã·ãŒãžã£ã䜿çšããŠç¢ºèªã§ããŸããOrders1
Cost
PERSISTED
Orders2
Orders1
sp_spaceused
sp_spaceused 'Orders1';
GO
sp_spaceused 'Orders2';
GO
å³3ã¯ããã®ä¿åãããããã·ãŒãžã£ãŒã®åºåã瀺ããŠããŸããè¡šã®ããŒã¿ãµã€ãºã¯8,824KB
Orders1
ã§ãè¡šã®ããŒã¿ãµã€ãºã¯Orders2
12,936KBã§ããèšç®å€ãä¿åããããã«ããã«4,112KBã
å³3.Orders1ããŒãã«ãšOrders2ããŒãã«ã®ãµã€ãºã®æ¯èŒ
ãããã®äŸã¯ããªãå°ããªããŒã¿ã»ããã«åºã¥ããŠããŸãããä¿åãããããŒã¿ã®éãã©ã®ããã«æ¥éã«å¢å ãããã確èªã§ããŸãããã ããããã©ãŒãã³ã¹ãåäžããå Žåãããã¯ãã¬ãŒããªãã«ãªãå¯èœæ§ããããŸãã
ããã©ãŒãã³ã¹ã®éãã確èªããã«ã¯ã次ã®SELECTãå®è¡ããŸãã
SELECT ItemID, Cost FROM Orders2 WHERE Cost >= 1000;
ããã¯ãOrders1ããŒãã«ã«äœ¿çšãããã®ãšåãSELECTã§ãïŒååã®å€æŽãé€ãïŒãå³4ã«å®è¡èšç»ã瀺ããŸãã
å³4.Orders2ããŒãã«ãžã®ã¯ãšãªã®å®è¡èšç»ã
ãããã¯ã©ã¹ã¿ãŒåã€ã³ããã¯ã¹ã¹ãã£ã³ããå§ãŸããŸãããã ããä»åã¯ãèšç®åãå®è¡æã«èšç®ããå¿ èŠããªããªã£ããããComputeScalarã¹ããŒãã¡ã³ãã¯1ã€ã ãã§ããäžè¬ã«ãã¹ãããã¯å°ãªãã»ã©è¯ãã§ããããã¯åžžã«ããã§ãããšã¯éããŸãããã
2çªç®ã®ã¯ãšãªã¯1593ã®è«çèªã¿åããçæããŸãããããã¯ãæåã®ããŒãã«ã®1108ã®èªã¿åãããã485å€ãå€ã§ããããã«ãããããããããã¯æåã®ãã®ããéãèµ°ããŸãããããçŽ100msã§ãããããããã¯ããã«çãå ŽåããããŸããããã»ããµæéãæžå°ããŸããããããã»ã©ã§ã¯ãããŸãããã»ãšãã©ã®å Žåãããªã¥ãŒã ã倧ãããèšç®ãè€éã«ãªããšãå·®ã¯ã¯ããã«å€§ãããªããŸãã
éæ°žç¶çãªèšç®åã®ã€ã³ããã¯ã¹
èšç®åã®ããã©ãŒãã³ã¹ãåäžãããããã«äžè¬çã«äœ¿çšããããã1ã€ã®ææ³ã¯ã玢åŒä»ãã§ããã€ã³ããã¯ã¹ãäœæã§ããããã«ããã«ã¯ãåã決å®è«çã§æ£ç¢ºã§ããå¿ èŠããããŸããã€ãŸããåŒã¯æµ®åå°æ°ç¹åãšå®æ°åã䜿çšã§ããŸããïŒåãæ°žç¶çã§ãªãå ŽåïŒãä»ã®ããŒã¿ã¿ã€ããSETãã©ã¡ãŒã¿ã«ãå¶éããããŸããå¶éã®å®å šãªãªã¹ãã«ã€ããŠã¯ãSQLServerã®ããã¥ã¡ã³ããComputedColumnsã®ã€ã³ããã¯ã¹ããåç §ããŠãã ããã
éæ°žç¶çãªèšç®åããã®ããããã£ãä»ããŠã€ã³ããã¯ã¹ä»ãã«é©ããŠãããã©ããã確èªã§ããŸãããã®é¢æ°ã䜿çšããŠããããã£ã衚瀺ããŠã¿ãŸããã
COLUMNPROPERTY
ãããããã£IsDeterministicãIsIndexableãããã³IsPreciseã¯ç§ãã¡ã«ãšã£ãŠéèŠã§ãã
DECLARE @id int = OBJECT_ID('dbo.Orders1')
SELECT
COLUMNPROPERTY(@id,'Cost','IsDeterministic') AS 'Deterministic',
COLUMNPROPERTY(@id,'Cost','IsIndexable') AS 'Indexable',
COLUMNPROPERTY(@id,'Cost','IsPrecise') AS 'Precise';
èšç®ãããåã«ã€ã³ããã¯ã¹ãä»ããããšãã§ããããã«ãSELECTã¹ããŒãã¡ã³ãã¯ããããã£ããšã«1ãè¿ãå¿ èŠããããŸãïŒå³5ãåç §ïŒã
å³5.ã€ã³ããã¯ã¹
ãäœæã§ããããšã®ç¢ºèªæ€èšŒåŸãéã¯ã©ã¹ã¿ãŒåã€ã³ããã¯ã¹ãäœæã§ããŸããããŒãã«ãå€æŽãã代ããã«
Orders1
ã3çªç®ã®ããŒãã«ïŒOrders3
ïŒãäœæããããŒãã«å®çŸ©ã«ã€ã³ããã¯ã¹ãå«ããŸããã
DROP TABLE IF EXISTS Orders3;
GO
CREATE TABLE Orders3(
LineID int IDENTITY PRIMARY KEY,
ItemID int NOT NULL,
Quantity int NOT NULL,
Price decimal(18, 2) NOT NULL,
Profit decimal(18, 2) NOT NULL,
Cost AS (Quantity * Price - Profit),
INDEX ix_cost3 NONCLUSTERED (Cost, ItemID));
INSERT INTO Orders3 (ItemID, Quantity, Price, Profit)
SELECT StockItemID, Quantity, UnitPrice, LineProfit
FROM Sales.InvoiceLines
WHERE UnitPrice IS NOT NULL
ORDER BY InvoiceLineID;
SELECTã¯ãšãªã® å
ItemID
ãšCost
SELECTã¯ãšãªã®äž¡æ¹ã®åãå«ãéã¯ã©ã¹ã¿ãŒåã«ããŒã€ã³ããã¯ã¹ãäœæããŸãããããŒãã«ãšã€ã³ããã¯ã¹ãäœæããŠããŒã¿ãå
¥åããåŸãåã®äŸãšåæ§ã«æ¬¡ã®SELECTã¹ããŒãã¡ã³ããå®è¡ã§ããŸãã
SELECT ItemID, Cost FROM Orders3 WHERE Cost >= 1000;
å³6ã¯ããã®ã¯ãšãªã®å®è¡èšç»ã瀺ããŠããŸãããã®ã¯ãšãªã§ã¯ãã¯ã©ã¹ã¿ãŒåã€ã³ããã¯ã¹ã¹ãã£ã³ãå®è¡ãã代ããã«ãix_cost3ïŒã€ã³ããã¯ã¹ã·ãŒã¯ïŒéã¯ã©ã¹ã¿ãŒåã€ã³ããã¯ã¹ã䜿çšããŠããŸãã
å³6.Orders3ããŒãã«ã§ã®ã¯ãšãªã®å®è¡èšç»IndexSeek
ã¹ããŒãã¡ã³ãã®ããããã£ãèŠããšãã¯ãšãªã92ã®è«çèªã¿åãã®ã¿ãå®è¡ããSELECTã¹ããŒãã¡ã³ãã®ããããã£ã§CPUãšåèšæéãæžå°ããŠããããšãããããŸããéãã¯éèŠã§ã¯ãããŸãããããããå°ããªããŒã¿ã»ããã§ãã
ãŸããå®è¡èšç»ã«ã¯ãæåã®ã¯ãšãªã®ããã«2ã€ã§ã¯ãªãã1ã€ã®ComputeScalarã¹ããŒãã¡ã³ããããªãããšã«ã泚æããŠãã ãããèšç®ãããåã«ã¯ã€ã³ããã¯ã¹ãä»ããããŠãããããå€ã¯ãã§ã«èšç®ãããŠããŸããããã«ãããåãæ°žç¶çã§ãããšå®çŸ©ãããŠããªãå Žåã§ããå®è¡æã«å€ãèšç®ããå¿ èŠããªããªããŸãã
ä¿åãããåã®ã€ã³ããã¯ã¹
ä¿åããèšç®åã«ã€ã³ããã¯ã¹ãäœæããããšãã§ããŸããããã«ãããè¿œå ã®ããŒã¿ãšã€ã³ããã¯ã¹ããŒã¿ãä¿åãããŸãããå Žåã«ãã£ãŠã¯åœ¹ç«ã€ããšããããŸããããšãã°ãfloatãŸãã¯å®éã®ããŒã¿ã¿ã€ãã䜿çšããŠããå Žåã§ããæ°žç¶çãªèšç®åã«ã€ã³ããã¯ã¹ãäœæã§ããŸãããã®ã¢ãããŒãã¯ãCLRé¢æ°ãæäœããå Žåããé¢æ°ã決å®è«çã§ãããã©ããã確èªã§ããªãå Žåã«ã圹ç«ã¡ãŸãã
次ã®ã¹ããŒãã¡ã³ã
CREATE TABLE
ã¯ããŒãã«ãäœæããŸãOrders4
ãããŒãã«å®çŸ©ã«ã¯ãæ°žç¶åCost
ãšéã¯ã©ã¹ã¿ãŒåã«ããŒã€ã³ããã¯ã¹ix_cost4ã®äž¡æ¹ãå«ãŸããŸãã
DROP TABLE IF EXISTS Orders4;
GO
CREATE TABLE Orders4(
LineID int IDENTITY PRIMARY KEY,
ItemID int NOT NULL,
Quantity int NOT NULL,
Price decimal(18, 2) NOT NULL,
Profit decimal(18, 2) NOT NULL,
Cost AS (Quantity * Price - Profit) PERSISTED,
INDEX ix_cost4 NONCLUSTERED (Cost, ItemID));
INSERT INTO Orders4 (ItemID, Quantity, Price, Profit)
SELECT StockItemID, Quantity, UnitPrice, LineProfit
FROM Sales.InvoiceLines
WHERE UnitPrice IS NOT NULL
ORDER BY InvoiceLineID;
ããŒãã«ãšã€ã³ããã¯ã¹ãäœæãããããŒã¿ãå ¥åãããããSELECTãå®è¡ããŸãã
SELECT ItemID, Cost FROM Orders4 WHERE Cost >= 1000;
å³7ã«å®è¡èšç»ã瀺ããŸããåã®äŸãšåæ§ã«ãã¯ãšãªã¯éã¯ã©ã¹ã¿ãŒåã€ã³ããã¯ã¹æ€çŽ¢ïŒã€ã³ããã¯ã¹ã·ãŒã¯ïŒããå§ãŸããŸãã
å³7.Orders4ããŒãã«ã§ã®ã¯ãšãªã®å®è¡èšç»
ãã®ã¯ãšãªããåã®ã¯ãšãªãš92ã®è«çèªã¿åãã®ã¿ãå®è¡ãããããã»ãŒåãããã©ãŒãã³ã¹ãåŸãããŸãã 2ã€ã®èšç®åã®äž»ãªéããããã³ã€ã³ããã¯ã¹ä»ãåãšã€ã³ããã¯ã¹ãªãåã®äž»ãªéãã¯ã䜿çšãããã¹ããŒã¹ã®éã§ããã¹ãã¢ãããã·ãŒãžã£ãå®è¡ããŠãããã確èªããŸããã
sp_spaceused
ã
sp_spaceused 'Orders1';
GO
sp_spaceused 'Orders2';
GO
sp_spaceused 'Orders3';
GO
sp_spaceused 'Orders4';
GO
çµæãå³8ã«ç€ºããŸããäºæ³ã©ãããæ ŒçŽãããèšç®åã«ã¯ããå€ãã®ããŒã¿ããããã€ã³ããã¯ã¹ä»ãåã«ã¯ããå€ãã®ã€ã³ããã¯ã¹ããããŸãã
å³8.4ã€ã®ããŒãã«ãã¹ãŠã®ã¹ããŒã¹äœ¿çšçã®æ¯èŒ
ã»ãšãã©ã®å Žåãæ£åœãªçç±ããªãéããæ ŒçŽãããŠããèšç®åã«ã€ã³ããã¯ã¹ãä»ããå¿ èŠã¯ãããŸãããä»ã®ããŒã¿ããŒã¹é¢é£ã®è³ªåãšåæ§ã«ãéžæã¯ç¹å®ã®ç¶æ³ãã€ãŸãã¯ãšãªãšããŒã¿ã®æ§è³ªã«åºã¥ããŠè¡ãå¿ èŠããããŸãã
SQLServerã§ã®èšç®åã®æäœ
èšç®åã¯éåžžã®ããŒãã«åã§ã¯ãªããããããã©ãŒãã³ã¹ãäœäžãããªãããã«æ³šæããŠåŠçããå¿ èŠããããŸããã»ãšãã©ã®ããã©ãŒãã³ã¹ã®åé¡ã¯ãåãä¿åãŸãã¯ã€ã³ããã¯ã¹ä»ãããããšã§è§£æ±ºã§ããŸãããã©ã¡ãã®ã¢ãããŒãã§ããäœåãªãã£ã¹ã¯é åãšããŒã¿ã®å€æŽæ¹æ³ãèæ ®ããå¿ èŠããããŸããããŒã¿ãå€æŽãããå Žåãæ°žç¶åãããèšç®åã«ã€ã³ããã¯ã¹ãä»ããå Žåã¯ãèšç®åã®å€ãããŒãã«ãŸãã¯ã€ã³ããã¯ã¹ããããã¯ãã®äž¡æ¹ã§æŽæ°ããå¿ èŠããããŸããç¹å®ã®ã±ãŒã¹ã«æé©ãªãªãã·ã§ã³ã決å®ããããšããã§ããŸããããããŠãã»ãšãã©ã®å Žåããã¹ãŠã®ãªãã·ã§ã³ã䜿çšããå¿ èŠããããŸãã
ç¶ããèªã